Написать программу, которая считывает текст из файла и выводит его на экран, меняя каждые два соседних слова. - C (СИ)
Формулировка задачи:
Помогите дописать программу на Си.Написать программу, которая считывает текст из файла и выводит его на экран, меняя каждые два соседних слова.
#include "stdafx.h"
#include "stdio.h"
#include <string.h>
#include <locale.h>
FILE *f;
int main()
{
setlocale(LC_ALL, "Ukrainian");
int i=0,s=0;
char str[256];
f=fopen("in.txt", "wt");
printf("введiть текст:\n");
gets(str);
fputs(str,f);
fclose(f);
FILE *f1;
f1=fopen("in.txt","rt");
if(f==NULL) { printf("Fail not open"); }
fgets(str,256,f);
while(!feof(f))
{
????вот тут незнаю как?????
}
fclose(f1);
getchar();
return 0;
}Решение задачи: «Написать программу, которая считывает текст из файла и выводит его на экран, меняя каждые два соседних слова.»
textual
Листинг программы
#include <stdio.h>
#define WRD_LEN 256
#define WRD_MASK "%255s"
#define FILE_NAME "file.txt"
int main(void) {
char w1[WRD_LEN], w2[WRD_LEN];
FILE * f;
if ( ! ( f = fopen(FILE_NAME, "r") ) ) {
fprintf(stderr, "Can't open %s for input!\n", FILE_NAME);
return 1;
}
while ( fscanf(f, WRD_MASK, w1) == 1 ) {
if ( fscanf(f, WRD_MASK, w2) == 1 )
printf("%s ", w2);
printf("%s ", w1);
}
return ( ferror(f) || fclose(f) );
}
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с файлами и вывода информации на экран.
- Определение макросов: — WRD_LEN — максимальная длина одного слова в файле (256 символов). — WRD_MASK — шаблон для чтения слов из файла (до 255 символов). — FILE_NAME — имя файла, из которого необходимо считать данные (file.txt).
- Создание двух буферов (w1 и w2) для хранения считанных слов.
- Открытие файла с помощью функции fopen.
- Проверка на успешное открытие файла и вывод сообщения об ошибке в случае неудачи.
- Вход в цикл while, который будет выполняться до тех пор, пока успешно считывается первое слово.
- Внутри цикла while: — Считывание первого слова в буфер w1 с помощью функции fscanf. — Если считывание первого слова прошло успешно, то считывание второго слова в буфер w2. — Вывод на экран второго слова, добавив перед ним пробел. — Вывод на экран первого слова, добавив перед ним пробел.
- В конце программы возвращается ошибка, если при работе с файлом была допущена ошибка (например, файл был открыт некорректно).