使用fscanf到达特定行后,如何读取整行?

使用fscanf到达特定行后,如何读取整行?,c,C,我有一个如下的文本文件。我使用fscanf进行读取,直到它看到“found”,然后将该行中的所有内容读取到一个数组中 text text some words text text hello text text text text random text world found read1 read2 read3 don't read any of this 到目前为止,我有以下几点: 我怎么能一直读到那一行的结尾?谢谢fgets函数将一直读取到行或文件的末尾-以先到者为准!它将从您当前的

我有一个如下的文本文件。我使用fscanf进行读取,直到它看到“found”,然后将该行中的所有内容读取到一个数组中

text text some words text 
text hello text text
text text random text
world

found read1 read2 read3
don't
read any of this
到目前为止,我有以下几点:


我怎么能一直读到那一行的结尾?谢谢

fgets函数将一直读取到行或文件的末尾-以先到者为准!它将从您当前的文件读取点读取

,摘录如下:

char line[LINE_MAX];
while (fgets(line, LINE_MAX, file) != NULL) {
..
}
编辑:
然后在行上使用字符串操作提取所需内容。或者两者都可以作为起点。我也很喜欢

1

fgets (name, 50, stdin);
50
是缓冲区的最大长度

二,


[]
是扫描集字符
[^\n]
告诉我们,虽然输入不是换行符,但“\n”接受输入。然后使用
%*c
从输入缓冲区读取换行符(未读取),而
*
表示此读入输入被丢弃(赋值抑制),因为您不需要它。

A可能会派上用场。特别是这一部分,以及它的内容。我相信你很快就会找到合适的东西。
if(strcmp(var,found)){
-->
if(strcmp(var,found))==0{
@BLUEPIXY啊,是的,很抱歉,谢谢!嗨,noelicus。但是如何将每个字符“read1”“read2”“read3”作为单独的元素存储在一个字符中**?新手这很好地回答了帖子的问题“如何阅读整行文字?”和“我如何阅读到这行文字的结尾?”。现在开始一个新问题。新问题(超出原始文章)属于另一篇文章。如果“如何存储每个字符‘read1’‘read2’‘read3’”很重要,它应该在原始文章中。
scanf(%[^\n]]*c,name);
如果行仅
“\n”
或太长,则无法正常工作。请使用
fgets()
fgets (name, 50, stdin);
scanf ("%[^\n]%*c", name);