Перенос текста из одного файла в другой - C (СИ)

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

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

Нужно ввести n-ое количество строк, которые сохраняется в файле text1.txt и переносятся в text2.txt. Но при вводе, например: я поел; в файле text.2 появляется дополнительный enter и "я". Очевидно, что проблема в самом коде программы. В чем причина? PS. по заданию дополнительно нужно, чтобы эти строчки выводились в порядке убывания. Как это сделать проще всего?
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h> 
#include <stdlib.h>
#include <windows.h>
 
int main(void)
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    int i = 0, length = 0;
    char *str = malloc(sizeof(char));
    FILE *T1, *T2;
    printf("Введите строки:\n");
    T1 = fopen("text1.txt", "w");
    while (str[1] != '\0')
    {
        fgets(str, 100, stdin);
        i++;
        if (length < (int)strlen(str))
            length = strlen(str);
        fprintf(T1, "%s", str);
    }
    i--;
    fclose(T1);
    T1 = fopen("text1.txt", "r");
    T2 = fopen("text2.txt", "w");
    while (!feof(T1))
        fputc(fgetc(T1), T2);
    fclose(T1);
    fclose(T2);
}

Решение задачи: «Перенос текста из одного файла в другой»

textual
Листинг программы
strcpy(strs[i], str);
fprintf(T1, "%s", strs[i]);//Запись в файл 1
++i;

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

  1. Создается массив строк типа char с именем strs размером n.
  2. В каждой ячейке массива strs[i] копируется строка str.
  3. Открывается файл T1 для записи (в режиме w).
  4. В файл T1 записывается содержимое каждой ячейки массива strs[i] с помощью функции fprintf.
  5. Увеличивается значение i на единицу для перехода к следующей ячейке массива.

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


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

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

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