Каждый пункт меню ввести в отдельную функцию - C (СИ)
Формулировка задачи:
К исходнику реализовать меню из 5 пунктов:
1)Открыть указанный файл для обработки
2)Обработать введенные данные (обработка программой введенного текста)
3)Сохранить в файл результат пункта 2.
4)Вывести результат обработки пункта 1 на экран.
5)Выход из программы.
Каждый пункт меню ввести в отдельную функцию.
#include <stdio.h>
#include <string.h>
int main()
{
FILE *file1, *file2;
char fname[256];
int ch;
printf ("Enter the filename to be copied:\n");
fgets (fname, sizeof (fname), stdin); //со стандартного потока stdin (клавиатура) считывается имя файла который надо модифицировать
if (fname[strlen(fname) - 1] ='\n')
fname[strlen(fname) - 1] = 0; //тут мы приводим в порядок строку с именем файла чтобы в дальнейшем проверить ее
file1 = fopen (fname,"r+"); //открываем исходный файл для чтения
if (!file1){
printf ("Can't find this file %s\n",fname);
return 0; //если нет такого файла программа завершается
}
file2 = fopen ("output.txt","w+"); //открываем (создаем если не существует) модифицированный файл output.txt для правки
if (!file2){
printf ("Can't create new file! Write Error\n");
fclose (file1);
return 0; //если создать невозможно то программа завершается
}
while ((ch = getc(file1))!=EOF) //начинаем цикл: пока считанный символ не является признаком конца файла продолжаем
{
switch (ch){
case ' ': putc ('\t', file2);
break; //если считываемый символ пробел, записываем в файл табуляцию
case '\t': putc (' ',file2);
break; //если символ табуляции - записываем пробел
default: putc (ch, file2);
break; //если любой другой символ, оставляем все без изменения
}
}
fclose(file1);
fclose(file2); //окончание работы с двумя файлами
}Решение задачи: «Каждый пункт меню ввести в отдельную функцию»
textual
Листинг программы
void display()
{
FILE *fp;
char th;
if((fp=fopen("test.txt", "r"))==NULL) {
printf("Can't open the file.\n");
exit(1);
}
while((th=getc(fp))!=EOF) {
putc(th, stdout);
}
fclose(fp);
return 0;
}
Объяснение кода листинга программы
В данном коде выполняется следующие действия:
- Открывается файл
test.txtдля чтения с помощью функции fopen. - Получается указатель на файл fp.
- Если файл не открылся (присваиваемое значение NULL), то выводится сообщение об ошибке и программа завершается с помощью функции exit.
- В цикле while считывается каждый символ из файла с помощью функции getc и выводится на экран с помощью функции putc.
- Файл закрывается с помощью функции fclose.
- Программа возвращает 0, что означает успешное выполнение.