【发布时间】:2016-12-22 22:16:16
【问题描述】:
在 C 中使用 fgets 在 EOF 之前读取文本文件的正确方法是什么?现在我有了这个(简化):
char line[100 + 1];
while (fgets(line, sizeof(line), tsin) != NULL) { // tsin is FILE* input
... //doing stuff with line
}
具体来说,我想知道是否应该有其他东西作为 while 条件?是否必须在 while 条件下执行从文本文件到“行”的解析?
【问题讨论】:
-
解析应该在while循环中完成,或者我猜你可以将每一行存储到一个数组或其他东西中,然后在while循环之后进行解析。完成后关闭文件
-
100% 没问题,您甚至可以只执行
while (fgets(line, sizeof(line), tsin)) {...}并让fgets的返回本身作为测试。 (一个有效的指针将测试true和NULL将测试false) -
我认为你做得对,关于省略 != NULL 的答案不会增加价值。
标签: c while-loop fgets