Строки: прочитать информацию из файла данных и вывести нужное - C (СИ)
Формулировка задачи:
Помогите с программой пожалуйтса
Создать программу которая выполняет обработку текста: в файле находится фамилия, имя и отчество студента, прочитать эту информацию с файла данных и вывести имя и кол-во букв в третьем слове.
Решение задачи: «Строки: прочитать информацию из файла данных и вывести нужное»
textual
Листинг программы
/* Предположим, целевой файл имеет след. структуру:
NewFamily
NewName
NewMiddleName
*/
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#define ARSIZE 20
typedef struct
{
char family[ARSIZE];
char name[ARSIZE];
char middleName[ARSIZE];
}Student;
int main()
{
FILE *source;
Student object;
int i, count;
//В след. строке записать свою директорию, имя и расширение целевого файла.
source = fopen("C:\\Folder1\\Folder2\\Folder3\\test.txt", "r");
if(source == NULL)
{
fprintf(stderr, "Can't open file\n");
exit(EXIT_FAILURE);
}
//Чтение строки вместе с '\n', т.е. как в файле.
fgets(object.family, ARSIZE, source);
fgets(object.name, ARSIZE, source);
fgets(object.middleName, ARSIZE, source);
fprintf(stdout, "%s\n", object.middleName);
i = count = 0;
//Подсчёт "букв" в "отчестве студента"
while(object.name[i] != '\0')
{
if(isalpha(object.name[i]))
++count;
++i;
}
fprintf(stdout, "characters == %d\n", count);
if(fclose(source))
{
fprintf(stderr, "Can't close file\n");
exit(EXIT_FAILURE);
}
getchar();
return 0;
}
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы
- Определяется структура «Student» с полями «family», «name», «middleName»
- Объявляются и инициализируются переменные «source», «object», «i», «count»
- Открывается целевой файл с помощью функции fopen.
- Если файл не открылся, выводится сообщение об ошибке и выполняется выход из программы.
- Информация из файла считывается в структуру «object» с помощью функции fgets.
- Выводится содержимое поля «middleName» с помощью функции fprintf.
- Инициализируются переменные «i» и «count» со значением 0.
- В цикле while подсчитывается количество буквенных символов в поле «name» с помощью функции isalpha.
- Выводится количество буквенных символов с помощью функции fprintf.
- Закрывается целевой файл с помощью функции fclose.
- Если файл не закрылся, выводится сообщение об ошибке и выполняется выход из программы.
- Ожидается нажатие любой клавиши с помощью функции getchar.
- Программа завершается с кодом 0.