C 文件的行数是未知的

C 文件的行数是未知的,c,file,scanf,C,File,Scanf,C语言中的一个练习告诉我从一个txt文件中读取信息,在这个txt文件中,行数事先不知道。例如,我有这样一个文件: name surname tel name1 surname2 tel2 我想这样使用这个函数fscanf() FILE *fp ... while(fscanf(fp, "%s%s%s\n", name, surname, tel) != EOF) { //function } 这是正确的方法吗?H2CO3是正确的fscanf返回匹配的字段数 真正的问题通常是,您不知道

C语言中的一个练习告诉我从一个txt文件中读取信息,在这个txt文件中,行数事先不知道。例如,我有这样一个文件:

name surname tel
name1 surname2 tel2
我想这样使用这个函数
fscanf()

FILE *fp

...

while(fscanf(fp, "%s%s%s\n", name, surname, tel) != EOF)
{
  //function
}

这是正确的方法吗?

H2CO3是正确的fscanf返回匹配的字段数

真正的问题通常是,您不知道文件中有多少行,因此不知道要为数据分配多大的结构或数组。一个解决方案是使用一个可以生长的std:vector

代码读取文件两次的频率令人惊讶。一次计算行数,分配存储,然后再次读取数据。这可能是一个明智的解决方案。<吉姆>你不能:戴维,请你修改答案。这个问题是关于C,而不是C++。