13.1 这样的代码有什么问题?
《误区》中提到的:
char c;
while((c = getchar()) != EOF) ...
1.保存 getchar 的返回值的变量必须是 int 型。getchar() 可能返回任何字符值, 包括 EOF。
2.如果把 getchar 的返回值截断为 char 型, 则正常的字符可能会被错误的解释为 EOF, 或者 EOF 可能会被修改 (尤其是 char 型为无符号的时候), 从而永不出现。
13.1 这样的代码有什么问题?
《误区》中提到的:
char c;
while((c = getchar()) != EOF) ...
1.保存 getchar 的返回值的变量必须是 int 型。getchar() 可能返回任何字符值, 包括 EOF。
2.如果把 getchar 的返回值截断为 char 型, 则正常的字符可能会被错误的解释为 EOF, 或者 EOF 可能会被修改 (尤其是 char 型为无符号的时候), 从而永不出现。