Программа создаёт файл с именем, которое вводит пользователь и просит ввести со стандартного ввода (клавиатуры) строку текста, которая обязательно должна заканчиваться точкой. Эта строка посредством потока записывается в файл. Затем файл переоткрывается на чтение и его содержимое выводится в поток стандартного вывода (на экран).
При возникновении ошибки программа выводит её код и значение.
Текст программы:
#include <stdio.h>
#include <errno.h> //подключаем файл с кодами ошибок
char ch; //символ для ввода
char filename[12]; //массив для имени файла
FILE *fd; //дескриптор потока
int main(void)
{
printf("\n\tPlease enter file name(12 symbols max): ");
scanf("%s",&filename); //ввод имени файла
if((fd=fopen(filename,"w"))==NULL) //открываем файл для записи
{ //если произошла ошибка
printf("\n\tError code : %i", errno); //выводим её код
perror("\n\tError value "); //и значение
return 0;
}
printf("\n\tPlease enter the string(with dot(.)in the end)\n");
do //в цикле читаем из потока стандартного ввода
{
ch=getc(stdin); //символы
fputc(ch,fd); //и выводим их в поток, ассоциированный с fd
}while(ch!='.'); //пока не находим точку - признак конца
fclose(fd); //закрываем поток
printf("\n\tFile %s content\n",filename);
if((fd=fopen(filename,"r"))==NULL) //открываем файл для чтения
{ //если произошла ошибка
printf("\n\tError code : %i", errno); //выводим её код
perror("\n\tError value "); //и значение
return 0;
}
do //в цикле читаем из потока, ассоциированного с fd
{
ch=getc(fd); //символы
fputc(ch,stdout); //и выводим их в поток стандартного вывода