程序在从文件中读取时崩溃。 C

时间:2015-05-04 04:23:13

标签: c file

下面的代码是将文本文件复制到另一个文件中。 它失败了。断言错误(stream!= NULL)

fp = fopen("quiz.txt", "w");
fp2 = fopen("output.txt", "r");

number_of_conversions = fscanf(fp2, "%c", &c);

while (number_of_conversions != 0 && number_of_conversions != EOF){
    fputc(c,fp);
    number_of_conversions = fscanf(fp2, "%c", &c);
}
fclose(fp2); 
fclose(fp);

1 个答案:

答案 0 :(得分:0)

在使用返回的文件指针之前,请务必检查fopen()的成功。

如果fopen()失败,它将返回NULL并进一步使用undefined behaviour。因此,在fopen()调用之后立即进行NULL检查。此外,FWIW,如果fopen()失败,则无法打开FILE *,您也无需致电fclose()