我有以下代码:
FILE *f = fopen('/path/to/some/file', 'rb');
char c;
while((c = fgetc(f)) != EOF)
{
printf("next char: '%c', '%d'", c, c);
}由于某些原因,当打印出字符时,在文件的末尾,一个不可渲染的字符将与ASCII序数-1一起打印出来。
next char: '?', '-1'这应该是什么角色?我知道这不是EOF,因为有一个检查,并在字符打印后,程序SEGFAULT很快。
发布于 2014-04-28 02:41:43
这就是罪魁祸首:
char c;请改为:
int c;fgetc的返回类型是int,而不是char。在某些平台中将int转换为char时会产生奇怪的行为。
https://stackoverflow.com/questions/23331587
复制相似问题