读书,我有一个文本文件,它看起来像:使用与fgets && sscanf的从一个数组
C M 2/1/2015 18280 "2107070770"
C U 2/1/2015 18300 "2107070770"
文本文件有多条线路。我试图将 每行存储到一个字符串数组中,然后将每个值 存储到变量中,我想要使用它。 (我开的fopen成功文件)
我存储与下面的方式每行:
char line[50];
char *lines[40];
char *eof ;
int i ;
while((eof = fgets(line, 50, in)) != NULL)
{
lines[i] = strdup(eof);
i++;
}
于是,我试图存储每个值转换成变量,用下面的方法:
所以,我可以分别在每一行工作。 我的代码将每行成功存储到数组中,但在添加sscanf函数后,它会停止工作,但不会输出任何内容。 我做错了什么?
'while((eof = fgets(line,50,in))!= NULL)' - >'while(fgets(line,50,in))',并且最后一个参数为'scanf'你不需要传递一个地址,因为'name'已经(或衰减)了一个指针。 –
'i'在这里没有被初始化。默认情况下,自动变量没有被初始化。 – sjsam
七个转换说明符。六个变量。未定义的行为。你完蛋了。 ;-) – DevSolar