首页 > 解决方案 > 处理任何文件输入/输出时出现分段错误

问题描述

我正在编写一些代码来获取我已经创建的文件 testfile.txt,并将相同的文本写入不同的文件,但将句点 (.) 更改为感叹号 (!)..

我遇到了与文件指针有关的分段错误,因此如果指针返回 NULL,我将其编写为只键入 ERROR。

我觉得它与我的目录有关,但我之前并没有真正使用过我的 mac 终端,只是从带有插件的文本编辑器中运行代码。

int main(){
  FILE *fp;
  FILE *fp2;
  fp = fopen("testfile.txt", "r");
  fp2 = fopen("testfileout.txt", "w");
  if(fp == NULL || fp2 == NULL){
      printf("ERROR");
      return -1;
  }

  char ch;
  while((ch = fgetc(fp)) != EOF){
    if(ch == '.'){
      ch = '!';
    }
    fputc(fp2, ch);
  }

  fclose(fp);
  fclose(fp2);

  return 0;
}

这是供参考的代码。它返回“错误”

标签: c

解决方案


推荐阅读