我今天遇到了一个问题。我无法找到一种方法来检查文件中的一行是否结束,并且已经从下一行中读取了这些单词。我使用fscanf从文件中逐字逐句阅读,然后根据需要处理该单词并将其打印到另一个文件中,但是存在问题。
例如我的数据文件是:
Hello, how are you
doing?
,结果文件显示:
Hello, how are you doing?
但是我需要将这些词放在我接受它们的行中。请记住,我一个接一个地需要这些词,这就是为什么我不能使用getline()
这是我如何从文件中读取单词的代码:
while( fscanf(file, "%s", A) != EOF )
{
check(A, B, &a); // I edit the words and put them in B string
// which is printed to the write file
}
感谢您的任何提示!
答案 0 :(得分:3)
将该行读入包含getline()
或fgets()
的字符串,然后使用sscanf
从该字符串中获取字词。
答案 1 :(得分:2)
您可以使用简单的逻辑,例如匹配.
或?
等通常以行结束的字符串。
答案 2 :(得分:1)
您需要通过添加支票来检查行尾。 由于换行符由换行符表示,即' \ n'。所以在while循环中而不是复制整个东西,在检查' \ n'
的帮助下逐行进行