Menguasai Input dan Output dalam Pemrograman C
Ketika kita menyebut Input, berarti memasukkan beberapa data ke dalam program. Input dapat diberikan dalam bentuk file atau dari baris perintah. Pemrograman C menyediakan sekumpulan fungsi bawaan untuk membaca input yang diberikan dan memasukkannya ke dalam program sesuai kebutuhan.
Ketika kita menyebut Output, berarti menampilkan beberapa data di layar, printer, atau dalam file. Pemrograman C menyediakan sekumpulan fungsi bawaan untuk mengeluarkan data ke layar komputer serta menyimpannya dalam file teks atau biner.
File Standar
Pemrograman C memperlakukan semua perangkat sebagai file. Jadi perangkat seperti layar di alamatkan dengan cara yang sama seperti file dan tiga file berikut secara otomatis dibuka ketika program dieksekusi untuk memberikan akses ke papan tik dan layar.
| File Standar | Pointer File | Perangkat |
| Input standar | stdin | Papan tik |
| Output standar | stdout | Layar |
| Error standar | stderr | Layar Anda |
Pointer file adalah sarana untuk mengakses file untuk tujuan membaca dan menuliskan. Bagian ini menjelaskan cara membaca nilai dari layar dan cara mencetak hasil di layar.
Fungsi getchar() dan putchar()
Fungsi int getchar(void) membaca karakter berikutnya yang tersedia dari layar dan mengembalikannya sebagai integer. Fungsi ini hanya membaca satu karakter pada satu waktu. Anda dapat menggunakan metode ini dalam loop jika Anda ingin membaca lebih dari satu karakter dari layar.
Fungsi int putchar(int c) menempatkan karakter yang diteruskan pada layar dan mengembalikan karakter yang sama. Fungsi ini hanya menempatkan satu karakter pada satu waktu. Anda dapat menggunakan metode ini dalam loop jika Anda ingin menampilkan lebih dari satu karakter di layar. Periksa contoh berikut −
#include <stdio.h> int main( ) { int c; printf( "Masukkan nilai :"); c = getchar( ); printf( "\nAnda memasukkan: "); putchar( c ); return 0; } Ketika kode di atas dikompilasi dan dieksekusi, program akan menunggu Anda memasukkan beberapa teks. Ketika Anda memasukkan teks dan menekan enter, program akan melanjutkan dan hanya membaca satu karakter dan menampilkannya sebagai berikut −
$./a.out Masukkan nilai : ini adalah tes Anda memasukkan: t
Fungsi gets() dan puts()
Fungsi char *gets(char *s) membaca satu baris dari stdin ke dalam buffer yang ditunjuk oleh s hingga newline yang mengakhiri atau EOF (Akhir File).
Fungsi int puts(const char *s) menuliskan string 's' dan 'a' newline di akhir ke stdout.
CATATAN: Meskipun penggunaan fungsi gets() telah tidak direkomendasikan, Sebaliknya menggunakan gets, Anda ingin menggunakan fgets().
#include <stdio.h> int main( ) { char str[100]; printf( "Masukkan nilai :"); gets( str ); printf( "\nAnda memasukkan: "); puts( str ); return 0; } Ketika kode di atas dikompilasi dan dieksekusi, program akan menunggu Anda memasukkan beberapa teks. Ketika Anda memasukkan teks dan menekan enter, program akan melanjutkan dan membaca baris lengkap hingga akhir, dan menampilkannya sebagai berikut −
$./a.out Masukkan nilai : ini adalah tes Anda memasukkan: ini adalah tes
Fungsi scanf() dan printf()
Fungsi int scanf(const char *format, ...) membaca input dari aliran input standar stdin dan memindai input tersebut sesuai dengan format yang disediakan.
Fungsi int printf(const char *format, ...) menulis output ke aliran output standar stdout dan menghasilkan output sesuai dengan format yang disediakan.
format dapat berupa string konstan sederhana, tetapi Anda dapat menentukan %s, %d, %c, %f, dll., untuk mencetak atau membaca string, integer, karakter atau float masing-masing. Ada banyak opsi pemformatan lain yang tersedia yang dapat digunakan berdasarkan kebutuhan. Mari kita lanjutkan dengan contoh sederhana untuk memahami konsep ini dengan lebih baik −
#include <stdio.h> int main( ) { char str[100]; int i; printf( "Masukkan nilai :"); scanf("%s %d", str, &i); printf( "\nAnda memasukkan: %s %d ", str, i); return 0; } Ketika kode di atas dikompilasi dan dieksekusi, program akan menunggu Anda memasukkan beberapa teks. Ketika Anda memasukkan teks dan menekan enter, program akan melanjutkan dan membaca input serta menampilkannya sebagai berikut −
$./a.out Masukkan nilai : tujuh 7 Anda memasukkan: tujuh 7
Di sini, perlu diperhatikan bahwa scanf() mengharapkan input dalam format yang sama seperti yang Anda berikan %s dan %d, yang berarti Anda harus memberikan input yang valid seperti "string integer". Jika Anda memberikan "string string" atau "integer integer", maka akan dianggap sebagai input yang salah. Kedua, saat membaca string, scanf() berhenti membaca begitu menemukan spasi, jadi "ini adalah tes" adalah tiga string untuk scanf().