Saya membaca di buku Bahasa Pemrograman C karya Dennis Ritchie yang intharus 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, getcharkembalikan 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 intmemecahkan 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 }.)