【发布时间】:2014-04-21 15:53:09
【问题描述】:
假设一个文本文件是这样的:
1, 2345, 7788, 463, ABC
2, 387, 1100, 321, CCC
2, 2222, 22222, 22, DSA
所以这个文本文件有3行,我的项目需要我们实现一个函数,逐行读取这个文本文件,在读取特定行的时候取出每一行的内容,然后检查这个的内容行。
例如,我会从第一行开始读取这个文件。所以当第一行被读取时(1, 2345, 7788, 463, ABC),我首先需要将这一行存储到一个字符串中(比如说它是 char[] str),然后我需要把这个 str 分成 5 块,并且每一部分都包含由逗号分隔的五个不同的字段内容,例如 p1、p2、p3、p4 和 p5。然后我需要检查 p3 是否为“1100”。如果是,则关闭此文件并继续程序,如果不是,则我需要继续阅读第二行并做同样的事情,显然 1100 是第二行的第三个字段,所以阅读后这一行函数将终止。
现在谁能告诉我如何实现它?我对 C 很陌生,我在网上搜索了一些关于 fgets() 的信息,例如:
if (fgets(str, 60, "text.txt")!=NULL){
puts(str);
}
但在这里我看不到任何暗示这个 frets() 逐行读取文本文件。
提前致谢! :D
【问题讨论】:
-
我喜欢使用POSIX.1-2008 来检查文档。
-
fgets的真正用途是一次读取一行。对于读取文件的其他方式(一次一个字符,或作为预定义长度的块),还有其他功能。