Обработка файлов с помощью Turbo C

Я должен сделать программу, которая управляет информацией, которую он получает из файла, но я использую Turbo C 3.0, который является древним, поэтому я получаю ошибки при попытке записи в файл, вот мой код:

#include <conio.h>
#include <stdio.h>

void main(){
clrscr();

int c;
FILE *datos;

datos = fopen("datos.txt","w");

c = fgetc (datos);

printf("%d",c);

fclose(datos);

getch();
}

Всякий раз, когда я печатаю это, я получаю -1 как возвращение. Я знаю, что это должно быть что-то действительно простое, но у меня есть проблемы.

4 ответа

Убедитесь, что у вас есть действительный файл:

// use "r" for reading, "w" for writing
datos = fopen("datos.txt", "r");

if (datos)
{
    int ch = fgetc(datos);
    if (ch != EOF)
        printf("%d\n", c);
    else
        printf("End of file!\n");
}
else
{
    printf("Failed to open datos.txt for reading.\n");
}
'include statements

main(){
  char we;
  char intt;
  ifstream q("xyz.txt");
  for (we=0;we<100;we++){
    q >> intt;
    printf("%c",q);
   }

  getch();

}

Вы открываете файл в режиме только записи ("w"), но вы пытаетесь прочитать файл с fgetc,

Либо откройте файл в режиме только для чтения ("r"), затем прочитайте данные, закройте файл и снова откройте его в режиме только записи, чтобы записать его. Или откройте файл в режиме, который поддерживает как чтение, так и запись - для получения дополнительной информации обратитесь к документации Turbo-C.

Попробуйте открыть файл для "чтения" вместо этого:

#include <conio.h>
#include <stdio.h>
#include <errno.h>

int main(){

  int c;
  FILE *datos;

  clrscr();
  datos = fopen("datos.txt","r");
  if (!datos) {
    printf ("Open failed, errno=%d\n", errno);
    return 1;
  }    
  c = fgetc (datos);
  printf("%d",c);
  fclose(datos);
  getch();
  return 0;
}

Если это не помогло, сообщите нам об ошибке #.

Другие вопросы по тегам