我有一个如下文字文件。我使用fscanf进行读取,直到它看到"找到",然后将该行中的所有其他内容读入数组。
text text some words text
text hello text text
text text random text
world
found read1 read2 read3
don't
read any of this
到目前为止,我有以下内容):
while(fscanf(file, "%s", var) != EOF){
if(strcmp(var, "found") == 0){
//put 'read1' 'read2' 'read3' into an array
}
}
如何读到该行的结尾?感谢
答案 0 :(得分:3)
fgets
函数将一直读到行或文件的末尾 - 以先到者为准!它将从您当前的文件读取点读取。
Here's some documentation for fgets,摘录:
char line[LINE_MAX];
while (fgets(line, LINE_MAX, file) != NULL) {
..
}
修改强>
然后在该行上使用字符串操作来提取您想要的内容。 strtok或sscanf都可以开始。我也非常喜欢strchr。
答案 1 :(得分:0)
1
fgets (name, 50, stdin);
50
是缓冲区的最大长度。
2
scanf ("%[^\n]%*c", name);
[]
是扫描集字符。 [^\n]
告诉我,输入不是换行符'\n'
。然后使用%*c
从输入缓冲区读取换行符(未读取),*
表示此读取输入被丢弃(赋值抑制),因为您不需要它