Чтение текста из файла и удаление файла - C (СИ)
Формулировка задачи:
Всем привет! помогите плз решить проблемку.
Написал прогу которая должна читать текст с клавиатуры, записывать его в файл
затем по запросу пользователя либо удалять файл при помощи функции remove
либо выводить содержимое файла на экран
вот моя прога:
проблемы следующие:
1)не работает удаление файла remove(st);
2)содержимое файла выводится на экран не полностью а только полторы строки... вообще непонятно почему
3) как проходит запись в файл? до паузы выполняю все действия - открываю файл на диске - и он ещё пуст, но после завершения программы - текст в файле появляется. получается что сначала всё скидывается в какой то поток и только перед закрытием читается из потока в файл, или как вообще происходит?
Жду ваший поправок и комментариев, Спасибо!
#include<stdio.h> #include<locale.h> #include<stdlib.h> #include<windows.h> #include<string.h> int main() { system("chcp 1251 > nul"); setlocale(0,""); FILE *st; char str[80], y, ch; if((st=fopen("Стирание.txt","w+"))==NULL) { printf("ошибка открытия файла"); exit(1); } printf("для выхода введите пустую строку\n"); do{ gets(str); strcat(str,"\n"); fputs(str,st); } while(*str!=' '); system("pause"); printf("\nУдалить ли содержимое файла перед выходом? Y/N "); scanf("%c",&y); if(toupper(y)=='Y') remove(st); rewind(st); //Выводим содержимое файла на экран while((ch=fgetc(st))!=EOF) { fputc(ch,stdout); } fclose(st); return 0; }
Решение задачи: «Чтение текста из файла и удаление файла»
textual
Листинг программы
while((ch=fgetc(st))!=EOF) { fputc(ch,stdout) }
Объяснение кода листинга программы
- В цикле while считывается каждый символ из файла с помощью функции fgetc до достижения конца файла (EOF).
- Каждый считанный символ записывается в файл стандартного вывода (stdout) с помощью функции fputc.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д