逐行读取文件错误

时间:2014-06-04 02:21:54

标签: c++

我必须解析文件中的数据。该文件具有以下结构:

text1.txt 1
text2.txt 2
text3.txt 4

该文件可以在here下载 我想得到text1.txt和1.所以我的代码如下:

#include <stdio.h>
void main() 
{ 
FILE    *fp= NULL;
int     status= -1;
char    name[100];
char *filename="test.txt";
fp= ::fopen(filename, "rt");
if (!fp)
    {
        printf("\Error open: \"%s\"\n\n", filename);
        return;
    }
do
{
int number=0;
status= fscanf(fp, "%s %d", name,number);

}
while (status!= EOF);
}

我正在使用C ++。我的问题是它在

崩溃了
status= fscanf(fp, "%s %d", name,number);

错误是“访问冲突写入位置0x00000000。”。有什么问题?你能帮帮我吗?

1 个答案:

答案 0 :(得分:2)

通过地址将要扫描的参数传递给fscanf

fscanf(fp, "%s %d", name, &number);

编译器可能警告过你:

warning: format ‘%d’ expects argument of type ‘int *’, but argument 4 has type ‘int’ [-Wformat=]

您的代码有未定义的行为,这是导致崩溃的原因。