我fgets()
用来扫描文件如下:
char buf[50];
if (fgets(buf, 50, fp) == NULL) {
printf("Error in file parsing.\n");
exit(1);
}
char *p;
p = buf;
p
指向缓冲区,我正在使用它来遍历扫描的字符串。fgets()
大小为 50,但它确实在扫描字符串的末尾添加了一个空终止符。
我的 while 循环如下所示:
while (*p != '\0')
当我的文本文件有:1 + 23
. 当文本文件包含1 + 23 - 5
时,它会陷入无限循环。为什么会这样?
我也尝试检查\n
哪个也失败了。最后,我使用strlen
并运行了一个 for 循环,strlen
但这并不准确。
关于我的 while 循环应该是什么样子的任何建议?