Bir değişkenin EOF tutması için kullanılması gereken Dennis Ritchie'nin C Programlama Dili kitabında okudum - intEOF değerini tutabilmesi için yeterince büyük hale getirmek için - değil char. Ancak aşağıdaki kod iyi çalışır:
#include<stdio.h>
main() {
char c;
c=getchar();
while(c!=EOF) {
putchar(c);
c=getchar();
}
}
Başka girdi olmadığında, getcharEOF değerini döndürür. Ve yukarıdaki programda, cchar türüne sahip değişken , onu başarıyla tutabilir.
Bu neden işe yarıyor? Yukarıda belirtilen kitaptaki açıklamaya göre, kod çalışmamalıdır.
0xff. Sonucunu saklanması getchar()bir in intçözer bu sorunu. Sorunuz , mükemmel bir kaynak olan comp.lang.c SSS bölümündeki soru 12.1 ile aynıdır . (Ayrıca, main()olmalı int main(void)ve bir ekleme bile incitmez return 0;kapanış önce }.)