-1

C 中的一个练习告诉我从一个文件 txt 中读取信息,其中的行数是先验未知的。例如我有一个这样的文件:

name surname tel
name1 surname2 tel2

我很难以fscanf()这种方式使用此功能

FILE *fp

...

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

这是正确的方法吗?

4

1 回答 1

0

H2CO3 是对 fscanf 返回匹配的字段数。

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

代码读取文件两次的频率令人惊讶。一次计算行数,分配存储空间,然后再次读取数据。这可能是一个理智的解决方案。

于 2013-08-09T20:20:28.720 回答