【发布时间】:2020-02-02 04:20:10
【问题描述】:
所以我试图打印文件中的行数。问题是我不能使用 fgets。有没有其他只涉及 fscanf 的替代方案? 我尝试运行以下命令:
while (1) {
ret = fscanf(fin, "%[^\n]", string);
if (ret == EOF) break;
line_count++;
}
但它不起作用。它给了我一个无限循环。谁能告诉我是什么问题?
【问题讨论】:
-
不幸的是它没有。你能指出我程序中的缺陷吗?
-
您正在扫描除换行符以外的所有内容。这意味着扫描卡在换行符上。链接的答案告诉您如何扫描包含换行符的行。您只需要调整它以计算行数并循环执行。
-
除了
fgetc,你为什么要使用其他东西?scanf不是合适的工具。