c - 从文件读取时程序崩溃。 C

标签 c file

下面的代码是将一个文本文件复制到另一个文本文件中。 它的失败。断言错误(流!=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);

最佳答案

始终检查 fopen() 是否成功在使用返回的文件指针之前。

如果fopen()失败,它将返回NULL,进一步使用它会导致undefined behaviour 。因此,在 fopen() 调用之后立即进行 NULL 检查。另外,FWIW,如果 fopen() 失败,则没有打开的 FILE * 并且您也不需要调用 fclose() .

关于c - 从文件读取时程序崩溃。 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30022575/

相关文章:

c++ - 如何在 PC 的特定位置用 C++ 创建文件

c - 如何在 C 中打印 ASCII 而不是整数?

c++ - 如何从 C API 保存 R 对象

C Codelite编译错误

python - 确定Python行开头的实际文件位置

ruby - 如何防止 File.readlines 中的引号

c - 确定处理器的字长

c 具体日期到时间

java - 如何在Java中的任何地方创建目录?

python - 查找文件中重复单词的索引