C 中的练习告诉我从文件 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 - 文件的行数事先未知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18154923/