Перенос текста из одного файла в другой - 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 на единицу для перехода к следующей ячейке массива.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д