Fungsi Input dan Output dalam C

Hai teman-teman, para programer masa depan! Hari ini, kita akan memulai sebuah perjalanan menarik ke dunia Input dan Output (I/O) dalam pemrograman C. Sebagai guru komputer yang ramah di lingkungan sekitar Anda, saya di sini untuk mengarahkan Anda melalui aspek penting ini dari pemrograman. Jadi, ambil papan cat虚拟 dan mari kita masuk ke dalam!

C - Input & Output

Berkas Standar dalam C

Sebelum kita mulai mengetik di papan ketik kita, mari berbicara tentang sesuatu yang fundamental: berkas standar dalam C. Anda melihat, ketika Anda menjalankan program C, secara otomatis terbuka tiga berkas untuk Anda. Itu seperti memiliki tiga asisten yang membantu untuk mengelola komunikasi program Anda dengan dunia luar.

  1. stdin (Input Standar)
  2. stdout (Output Standar)
  3. stderr (Error Standar)

Berkas ini adalah pintu masuk program Anda ke pengguna dan sistem. Bayangkan stdin sebagai telinga program Anda, stdout sebagai mulutnya, dan stderr sebagai cara dia menjerit saat ada kesalahan. Keren, kan?

Tipe Fungsi Input dan Output

Sekarang, mari bicarakan tentang alat-alat yang kita gunakan untuk berinteraksi dengan berkas-berkas ini. Dalam C, kita memiliki dua jenis utama fungsi I/O:

  1. Fungsi I/O Tak Terformat
  2. Fungsi I/O Terformat

Fungsi tak terformat berhubungan dengan data mentah, sedangkan fungsi terformat memungkinkan kita menentukan format data kita. Itu seperti perbedaan antara makan nasi mentah (tanpa format) dan makan makanan khusus yang dihidangkan indah (terformat). Kedua-duanya bisa melaksanakan tugas, tetapi satu memberikan Anda lebih banyak kontrol atas presentasinya!

Fungsi Input dan Output Karakter Tak Terformat: getchar() dan putchar()

Mulai dari yang sederhana dengan I/O karakter tak terformat. Kenalkan kepada Anda dua fungsi pertama: getchar() dan putchar().

getchar()

getchar() membaca karakter tunggal dari input standar (biasanya papan ketik Anda). Itu seperti seorang pendengar sabar menunggu Anda mengetikkan satu karakter saja.

#include <stdio.h>

int main() {
char ch;
printf("Masukkan karakter: ");
ch = getchar();
printf("Anda memasukkan: ");
putchar(ch);
return 0;
}

Dalam contoh ini, getchar() menunggu Anda mengetikkan karakter dan menyimpannya di ch. Itu sangat sederhana, tapi sangat kuat!

putchar()

putchar() adalah lawan dari getchar(). Itu mengeluarkan karakter tunggal ke output standar (biasanya layar Anda). Itu seperti seorang pengumum yang mengumumkan satu huruf pada saat yang sama.

#include <stdio.h>

int main() {
char ch = 'A';
printf("Mencetak karakter: ");
putchar(ch);
return 0;
}

Di sini, putchar(ch) menampilkan karakter 'A' di layar Anda. Sederhana dan efektif!

Fungsi Input dan Output String Terformat: gets(), fgets(), puts(), dan fputs()

Sekarang, mari tingkatkan dan bicarakan tentang I/O string. Fungsi ini menangani string keseluruhan, bukan hanya karakter tunggal.

gets() dan fgets()

gets() membaca baris dari stdin ke buffer. Namun, itu dianggap tidak aman karena tidak memeriksa overflow buffer. Itu adalah sebabnya kita lebih memilih saudara yang lebih aman nya, fgets().

#include <stdio.h>

int main() {
char name[50];
printf("Masukkan namamu: ");
fgets(name, sizeof(name), stdin);
printf("Halo, %s", name);
return 0;
}

Dalam contoh ini, fgets() membaca baris teks (namamu) ke array name. Itu lebih aman karena kita menentukan jumlah maksimum karakter yang akan dibaca.

puts() dan fputs()

puts() menulis string ke stdout dan menambahkan baris baru. Lawanannya di stream berkas adalah fputs().

#include <stdio.h>

int main() {
char greeting[] = "Halo, Dunia!";
puts(greeting);  // Keluaran: Halo, Dunia! (dengan baris baru)
fputs(greeting, stdout);  // Keluaran: Halo, Dunia! (tanpa baris baru)
return 0;
}

puts() secara otomatis menambahkan baris baru, sedangkan fputs() memberikan Anda lebih banyak kontrol.

Fungsi Input dan Output Terformat: scanf() dan printf()

Sekarang kita masuk ke pemain utama I/O dalam C: scanf() dan printf(). Fungsi ini seperti pisau瑞士 Army knife I/O – fleksibel dan kuat.

scanf()

scanf() membaca input terformat dari stdin. Itu seperti seorang pemakan yang picky yang hanya menerima makanan yang disiapkan sesuai spesifikasi.

#include <stdio.h>

int main() {
int age;
float height;
printf("Masukkan umur dan tinggimu: ");
scanf("%d %f", &age, &height);
printf("Anda berusia %d tahun dan %.2f meter tinggi.\n", age, height);
return 0;
}

Di sini, scanf() membaca integer (%d) dan float (%f) dari input. Tanda & sebelum age dan height sangat penting – itu memberitahu scanf() di mana untuk menyimpan nilai-niali.

printf()

printf() adalah lawan output dari scanf(). Itu seperti seorang cerita yang mahir, mencetak data Anda ke string yang diformat secara indah.

#include <stdio.h>

int main() {
int apples = 5;
float price = 0.75;
printf("Saya punya %d buahapel, masing-masing harga $%.2f.\n", apples, price);
return 0;
}

Dalam contoh ini, printf() memformat data kita ke dalam kalimat yang mudah dibaca.

Penyebut Format dalam C

Penyebut format adalah saus rahasia yang membuat scanf() dan printf() begitu kuat. Mereka seperti petunjuk yang memberitahu fungsi ini bagaimana menginterpretasi atau menyajikan data.

Berikut adalah tabel praktis penyebut format umum:

Penyebut Tipe Data
%d Integer
%f Float
%c Character
%s String
%lf Double
%x Hexadecimal
%o Octal
%p Pointer

Ingat, Anda dapat memodifikasi penyebut-penyebut ini. Sebagai contoh, %.2f mencetak float dengan 2 desimal, dan %5d mencetak integer dalam lebar field 5 karakter.

Dan begitulah, teman-teman! Kita telah melihat dasar-dasar Input dan Output dalam C. Ingat, latihan membuat sempurna. Jadi, buat dan mulai mengoding! Siapa tahu? Mungkin Anda akan menciptakan hal yang besar dalam teknologi. Sampai jumpa lagi, coding yang menyenangkan!

Credits: Image by storyset