Saya membaca di buku Bahasa Pemrograman C karya Dennis Ritchie yang int
harus digunakan untuk variabel untuk menahan EOF - untuk membuatnya cukup besar sehingga dapat menyimpan nilai EOF - tidak char
. Tetapi kode berikut berfungsi dengan baik:
#include<stdio.h>
main() {
char c;
c=getchar();
while(c!=EOF) {
putchar(c);
c=getchar();
}
}
Ketika tidak ada lagi input, getchar
kembalikan EOF. Dan dalam program di atas, variabel c
, dengan tipe char, dapat menahannya dengan sukses.
Mengapa ini bekerja? Sesuai penjelasan dalam buku yang disebutkan di atas, kode tidak boleh bekerja.
0xff
. Menyimpan hasil getchar()
dalam int
memecahkan masalah itu. Pertanyaan Anda pada dasarnya sama dengan pertanyaan 12.1 di FAQ comp.lang.c , yang merupakan sumber yang bagus. (Juga, main()
seharusnya begitu int main(void)
, dan tidak ada ruginya menambahkan return 0;
sebelum penutupan }
.)