Fungsi Input dan Output dalam C

Hai teman-teman, para programer masa depan! Hari ini, kita akan memulai perjalanan yang 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 dalam coding. Jadi, ambil notepad virtual Anda, dan mari kita masuk ke dalamnya!

C - Input & Output

Berkas Standard dalam C

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

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

Berkas ini adalah pintu akses program Anda ke pengguna dan sistem. Bayangkan stdin sebagai telinga program Anda, stdout sebagai mulutnya, dan stderr sebagai cara nya untuk berteriak saat ada kesalahan. Keren, kan?

Tipe Fungsi Input dan Output

Sekarang, mari kita 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 Tertata
  2. Fungsi I/O Tertata

Fungsi tak tertata berhubungan dengan data mentah, sedangkan fungsi tertata memungkinkan kita menentukan format data kita. Itu seperti perbedaan antara makan nasi mentah (tanpa format) dan makan makanan kelas dunia (terformat). Kedua-duanya melakukan pekerjaan, tapi satu memberikan Anda lebih banyak kontrol terhadap presentasinya!

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

Mari kita mulai dengan sederhana dengan I/O karakter tak tertata. Temui dua fungsi pertama kita: getchar() dan putchar().

getchar()

getchar() membaca karakter tunggal dari standar input (biasanya keyboard Anda). Itu seperti pendengar patient menunggu Anda mengetik karakter tunggal.

#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 mengetik karakter dan menyimpannya di ch. Itu sangat sederhana, tapi sangat kuat!

putchar()

putchar() adalah lawan getchar(). Itu mengoutputkan karakter tunggal ke standar output (biasanya layar Anda). Itu seperti penyiar kota mengumumkan satu huruf pada satu waktu.

#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 Tertata: gets(), fgets(), puts(), dan fputs()

Sekarang, mari kita naik tingkat 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 nama Anda: ");
fgets(name, sizeof(name), stdin);
printf("Hai, %s", name);
return 0;
}

Dalam contoh ini, fgets() membaca baris teks (nama Anda) 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 adalah fputs().

#include <stdio.h>

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

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

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

Sekarang kita mencapai pengembang berat dari I/O dalam C: scanf() dan printf(). Fungsi ini seperti pisau Swiss Army Knife dari I/O - multifungsi dan kuat.

scanf()

scanf() membaca input tertata dari stdin. Itu seperti pengenakan makanan yang picky hanya menerima makanan yang disiapkan seperti yang ditentukan.

#include <stdio.h>

int main() {
int age;
float height;
printf("Masukkan umur dan tinggi Anda: ");
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-nilai ini.

printf()

printf() adalah lawan scanf(). Itu seperti cerita masterful yang memakai data Anda ke string yang diformatkan secara indah.

#include <stdio.h>

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

Dalam contoh ini, printf() memformatkan data kita menjadi kalimat yang mudah dibaca.

Spesifikator Format dalam C

Spesifikator format adalah saus rahasia yang membuat scanf() dan printf() begitu kuat. Itu seperti instruksi yang memberitahu fungsi ini bagaimana menginterpretasi atau menyajikan data.

Berikut adalah tabel praktis spesifikator format umum:

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

Ingat, Anda dapat memodifikasi spesifikator ini. Misalnya, %.2f mencetak float dengan 2 desimal, dan %5d mencetak integer dalam lebar field 5 karakter.

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

Credits: Image by storyset