我是 C 语言的新手,现在遇到这样的问题:如果我使用上面的表达式在文件中打印字符串,为什么会得到一个奇怪的结果?
情况如下:我有一个文件(data.txt),内容如下:
“大家好!!”
这是我的代码:
int main()
{
FILE *ptr = fopen("data.txt", "r");
if (ptr != NULL)
{
while (getc(ptr) != EOF) //print all contents in data.txt
printf("%c", getc(ptr));
}
else
printf("Open file failed.");
return 0;
}
执行结果为:
“艾尔沃!”
如果我getc(ptr)
先分配给变量并进行比较,一切都会好起来的。
这两种方法有什么区别?