Перенос текста из одного файла в другой - 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;
Объяснение кода листинга программы
- Создается массив строк типа char с именем strs размером n.
- В каждой ячейке массива strs[i] копируется строка str.
- Открывается файл T1 для записи (в режиме
w
). - В файл T1 записывается содержимое каждой ячейки массива strs[i] с помощью функции fprintf.
- Увеличивается значение i на единицу для перехода к следующей ячейке массива.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д