В текстовом файле каждую вторую строку разбить на слова - C (СИ)
Формулировка задачи:
Задача:в текстовом файле каждую вторую строку разбить на слова.Результат вывести в другой файл.
С помощью strtok уже сделал,решил попробовать с помощью fscanf,но не могу сообразить как остановить ее в конце строки,ибо она продолжает считывать весь файл до конца,по словам.Что прописать в условии while в строке 12?
#include <stdio.h> int main() { int n = 1; char s[80]; FILE *fin, *fout; fin = fopen("Input.txt", "r"); fout = fopen("Output.txt", "w"); while(!feof(fin)){ if(n % 2 == 0){ while(?){ fscanf(fin, "%s", s); fprintf(fout, "%s\n", s); } n++; } else fgets(s, 80, fin); fprintf(fout, "%s", s); n++; } fclose(fin); fclose(fout); return 0; }
Решение задачи: «В текстовом файле каждую вторую строку разбить на слова»
textual
Листинг программы
while(!feof(fin))
Объяснение кода листинга программы
- Открывается файл
fin
для чтения - Создается пустой массив
line
для хранения строк из файла - Считывается первая строка из файла и сохраняется в массиве
line
- Если файл не закончился (feof(fin) == 0), то переходим к следующему шагу, иначе выходим из цикла
- Считывается вторая строка из файла и сохраняется в массиве
line
- Если файл не закончился (feof(fin) == 0), то переходим к следующему шагу, иначе выходим из цикла
- Массив
line
разбивается на слова и сохраняется в массивеword
- Если файл не закончился (feof(fin) == 0), то переходим к следующему шагу, иначе выходим из цикла
- Каждое слово из массива
word
выводится на экран - Перемещается на следующую строку в файле (файловый указатель перемещается на следующую строку)
- Повторяем шаги с 3 по 9 до тех пор, пока файл не закончится (feof(fin) == 1)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д