Написать программу, которая считывает текст из файла и выводит его на экран, меняя каждые два соседних слова. - 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) );
}

Объяснение кода листинга программы

  1. Подключение необходимых библиотек для работы с файлами и вывода информации на экран.
  2. Определение макросов: — WRD_LEN — максимальная длина одного слова в файле (256 символов). — WRD_MASK — шаблон для чтения слов из файла (до 255 символов). — FILE_NAME — имя файла, из которого необходимо считать данные (file.txt).
  3. Создание двух буферов (w1 и w2) для хранения считанных слов.
  4. Открытие файла с помощью функции fopen.
  5. Проверка на успешное открытие файла и вывод сообщения об ошибке в случае неудачи.
  6. Вход в цикл while, который будет выполняться до тех пор, пока успешно считывается первое слово.
  7. Внутри цикла while: — Считывание первого слова в буфер w1 с помощью функции fscanf. — Если считывание первого слова прошло успешно, то считывание второго слова в буфер w2. — Вывод на экран второго слова, добавив перед ним пробел. — Вывод на экран первого слова, добавив перед ним пробел.
  8. В конце программы возвращается ошибка, если при работе с файлом была допущена ошибка (например, файл был открыт некорректно).

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.583 из 5
Похожие ответы