Из исходного файла создать два: в одном — нечетные строки, в другом — четные - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток! Задание : Из исходного файла создать два : в одном - нечетные строки, в другом - четные. Вот что сам написал
#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
void main()
{
FILE *fINP, *fPAR, *fODD;
char ninp[256],npar[256],nodd[256];
char str[256];
char eofl;

// Открытие файлов для работы : исходного(1), для записи нечетных строк(2), для записи четных строк(3).
 
// (1) 
printf("Open data file: \n\t");
scanf("%s",ninp);
if((fINP=fopen(ninp,"rt")) == NULL)
    {
        printf("\n error while opening file %s \n",ninp);
        getch();
        exit(EXIT_SUCCESS);
    }
 
// (2) 
printf("Open file for strings with odd numbers: \n\t");
scanf("%s",nodd);
if((fODD=fopen(nodd,"wt")) == NULL)
    {
        printf("\n error while opening file %s \n",nodd);
        getch();
        exit(EXIT_SUCCESS);
    }
 
// (3) 
printf("Open file for strings with parity numbers: \n\t");
scanf("%s",npar);
if((fPAR=fopen(npar,"wt")) == NULL)
    {
        printf("\n error while opening file %s \n",npar);
        getch();
        exit(EXIT_SUCCESS);
    }
 
// Решение задачи
while (!feof(fINP))
    {
                fscanf(fINP,"%s",&str);
                fputs(str,fODD);
                fputs("\n",fODD);
                if(!feof(fINP))
                {
                    fscanf(fINP,"%s",&str);
                    fputs(str,fPAR);
                    fputs("\n",fPAR);
                }
    }

// Закрытие файлов (1), (2), (3).
 
// (1)
if((fclose(fINP)) == NULL)
    printf("\n file %s was succesfully closed! \n", ninp);
else
    printf("\n error while closing file %s \n", ninp);
//(2)
if((fclose(fODD)) == NULL)
    printf("\n file %s was succesfully closed! \n", nodd);
else
    printf("\n error while closing file %s \n", nodd);
//(3)
if((fclose(fPAR)) == NULL)
    printf("\n file %s was succesfully closed! \n", npar);
else
    printf("\n error while closing file %s \n", npar);
 
printf("\n\t\t\a End of program \n");
getch();
}
Суть вопроса в том, что записав в исходный файл для примера стихотворение "Бородино", переписывание строк осуществляется не по коду конца строки а по пробелу. как избавиться от этого? Заранее большое спасибо!

Решение задачи: «Из исходного файла создать два: в одном — нечетные строки, в другом — четные»

textual
Листинг программы
fgets(str,100,fINP);

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

Код считывает строку из стандартного ввода (fINP) в строковую переменную (str), используя функцию fgets. Размер строки (100) указывается в качестве третьего аргумента функции.

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


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

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

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