В текстовом файле каждую вторую строку разбить на слова - 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)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д