Обработка файлов с помощью 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;
}
Если это не помогло, сообщите нам об ошибке #.