0

やあみんな私はこのコードを持っています: (文字列を読み取って出力ファイルに入れようとしています)

#include "structs.h"
#include <stdio.h>
#include <stdlib.h>
int main () {
  FILE* input = fopen("journal.txt", "r");
  FILE* output = fopen("output.txt", "w");
  char date[9];

  if( ferror(input) || ferror(output) ) {
    perror("Error opening input/output file\n");
  }

  fscanf(input, "%s", date);
  fgets(date, 9, input);
  fputs(date, output);
  fclose(input);
  fclose(output);
  return 0;
}

正しくコンパイルされますが、実行時にエラーが表示されます

 Segmentation fault (core dumped)

理由がわかりません:(助けてください

4

2 に答える 2

0
 #include <stdio.h>
 #include <stdlib.h>

   int main ()
 {
 FILE* input = fopen("journal.txt", "r");
 FILE* output = fopen("output.txt", "w");
 char date[9];

 if(input)
 {
   fscanf(input, "%s", date);
    fgets(date, 9, input);
 }
else
 {
  printf("error opening the file");
 }

if(output)
{
   fputs(date, output);
}

 else
 {
  printf("error opening the file");

 }

存在しないファイル 'journal.txt' から読み取り、Ferror を呼び出すとセグメンテーション フォールトがトリガーされるため、セグメンテーション フォールトを受信して​​いました。

于 2013-10-16T11:42:34.650 に答える