Чтение текста из файла и удаление файла - 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.