Bir değişkenin EOF tutması için kullanılması gereken Dennis Ritchie'nin C Programlama Dili kitabında okudum - int
EOF 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, getchar
EOF değerini döndürür. Ve yukarıdaki programda, c
char 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 }
.)