【发布时间】:2013-10-27 12:22:45
【问题描述】:
我有一个.txt 文件:
A B C
England vs autralia
2004
100
D E F
japan vs argentina
3045
140
D E F
india vs pakistan
2012
150
J F G
south africa vs india
1967
100
K GHD D
australia vs pakistan
1993
453
Z E Q
pakistan vs england
2013
150
我想读取它并存储在变量中。 (每行转到一个变量)。
我有这段代码,但它一次读取一行,并且是一个字符串。
if ( file != NULL )
{
i=1;
char line [ 100 ]; /* line size */
while ( fgets ( line, sizeof line, file ) != NULL ) /* read a line */
{
fputs ( line, stdout ); /* write the line */
i++;
}
fclose ( file );
}
其实我想一次读 4 行。但似乎不可能。所以我可以将第 4 行放在由空格分隔的单行中,但在这种情况下,将无法扫描多字字符串。
那么,我该怎么做呢?
【问题讨论】:
-
fgets ( line, stdout );你可能是指 fputs() 这里。 -
@wildplasser 是的。这是我得到的代码。检查更新的问题。
-
我不在乎你是怎么得到它的,它只是看起来不对,编译器会至少发出警告。 BTW:你考虑过循环吗?
-
如果每 4 行构建一个实体,则建议将它们放在一行中并用分隔符分隔,这种格式称为 csv
-
@A4L:这值得商榷。多行格式更易于读写:不需要引用/转义逗号或嵌入引号,唯一的特殊字符是 '\n'。