c - 谁能告诉我为什么会出现此错误...?
问题描述
这是一个C项目。我正在处理文本和二进制文件。这是一个从标准输入文件读取文件并读取新文件并将现有文件具有的信息写入新文件的项目。但我得到一个错误。这是我的代码:
#include <stdio.h>
#include <stdlib.h>
void main()
{
FILE *fFrom;
FILE *fTo;
char filename[80];
char newfilename[80];
printf("Enter the file you want to copy: ");
scanf("%s", filename);
fFrom = fopen(filename, "r");
if(fFrom == NULL)
{
printf("File not found...");
return;
}
printf("Enter new filename: ");
scanf("%s", newfilename);
fTo = fopen(newfilename, "r");
if(fTo)
{
printf("File already exists...\n");
return;
}
fclose(fTo);
fTo = fopen(newfilename, "w");
if(!fTo)
{
printf("Error opening file...\n");
return;
}
while (!feof(fFrom))
{
fputc(fgetc(fFrom), fTo);
}
fclose(fFrom);
fclose(fTo);
return;
}
然后在控制台中:输入要复制的文件:test.txt //现有文件输入新文件名:new_test.txt //新文件分段错误(核心转储)
解决方案
段错误可能来自第一次调用fclose(fTo)
whenfTo
为空(文件不存在)。
有关使用空指针调用的更多讨论,请参阅此答案。fclose
FILE*
推荐阅读
- javascript - Angular上传带有本地路径的pdf文件
- vue.js - VS 代码和 vue 对象字符串插值智能感知
- excel - 如何从 Coinbase API 中提取钱包信息/余额
- fat-free-framework - 使用无脂肪框架的代码完成(又名“智能感知”?)
- sql - 没有合并的 SQL Server 计数字段值
- pdfjs - PDF 不在 IE11 ng2-pdfjs-viewer 的外部窗口中呈现
- python - 如何将 HTTP 请求作为 python 函数的参数传递?
- php - Wordpress:汇总用户所有帖子的自定义元值
- python - RuntimeWarning:在 true_divide 距离中遇到的无效值 = 1 - 0.5 * X @ self.X_T / np.linalg.norm(X, axis=1)[:, None] / self.X_T_norm
- sql - 为什么我在 IB Expert 中的 SQL 代码返回一些空值