Dev-C ++ Обработка файлов - PullRequest
       16

Dev-C ++ Обработка файлов

0 голосов
/ 20 ноября 2010

Я использую Dev-C ++ IDE, и теперь я пытаюсь выполнить обработку файла. Вот мой код:

int main(){
     FILE *fp;
     int b = 10;
     int f;
      fp = fopen("data.txt", "w");
      //checking if the file exist
      if(fp == NULL){
        printf("File does not exist,please check!\n");
      }else{
      printf("we are connected to the file!\n");
      }
      fprintf (fp, " %d ", b) ;
      fclose(fp);
      printf("Reading from the file \n");

      FILE *fr;
      fr=fopen("data.txt","r");
      fscanf (fr, " %d ", &f) ;
      fclose(fr);
      printf("the data from the file %d \n", f);
    return 0;

}

этот код работает в NetBeans, но в Dev-C ++ яя просто получаю сообщение «мы подключены к файлу», но оно не помещает значение «10» в файл.пожалуйста, вы знаете ответ, дайте мне знать, что мне делать?

Ответы [ 2 ]

2 голосов
/ 20 ноября 2010

Я не вижу ничего плохого в вашем коде, но вот несколько советов

Хорошая привычка - создавать функции и вызывать их вместо того, чтобы иметь все встроенные функции, например

#define FILENAME "data.txt"

void writeFile()
{
     FILE *fp;
     int b = 10;
      fp = fopen(FILENAME, "w");
      //checking if the file exist
      if (fp == NULL)
      {
        perror("File could not be opened for writing\n");
      }
      else
      {
        printf("File created\n");
      }
      fprintf (fp, " %d ", b) ;
      fclose(fp);
}

void readFile()
{
     int f;
     printf("Reading from the file \n");

     FILE *fr;
     fr=fopen(FILENAME,"r");
     fscanf (fr, " %d ", &f) ;
     fclose(fr);
     printf("the data from the file %d \n", f);
}

int main()
{
  writeFile();
  readFile();
}

затем при чтении из файла я бы посоветовал вам использовать fgets вместо этого, так как это безопаснее использовать, поскольку fscanf имеет тенденцию вызывать перезапись памяти, если значения являются неожиданными.

<- fscanf(fp," %d ", &f );

-> char buf[16]; // some buffer
-> fgets( fp, buf, 10 ); // read as string
-> f = atoi(buf); // convert to int
0 голосов
/ 11 декабря 2017

работает отлично.Нет проблем с кодом IDE.Пожалуйста, измените код в «Мои документы» в Windows.Попробуйте .... Я думаю, что его разрешение вопроса.

...