munsine Ответов: 1

Как добавить содержимое файла в конец другого файла без использования каких-либо встроенных функций.


После ввода имени первого и второго файла, когда я ввожу имя объединенного файла и нажимаю enter, появляется сообщение об ошибке: нет такого файла или каталога. Так в чем же может быть проблема?

Что я уже пробовал:

/* C Program to Append the Content of File at the end of Another
*/
#include <stdio.h>
#include <stdlib.h>
main()
{
FILE *fsring1, *fsring2, *ftemp;
char ch, file1[20], file2[20], file3[20];
printf("Enter name of first file ");
gets(file1);
printf("Enter name of second file ");
gets(file2);
printf("Enter name to store merged file ");
gets(file3);
fsring1 = fopen(file1, "r");
fsring2 = fopen(file2, "r");
if (fsring1 == NULL || fsring2 == NULL)
{
perror("Error has occured");
printf("Press any key to exit...\n");
exit(EXIT_FAILURE);
}
ftemp = fopen(file3, "w");
if (ftemp == NULL)
{
perror("Error has occures");
printf("Press any key to exit...\n");
exit(EXIT_FAILURE);
}
while ((ch = fgetc(fsring1)) != EOF)
fputc(ch, ftemp);
while ((ch = fgetc(fsring2) ) != EOF)
fputc(ch, ftemp);
printf("Two files merged %s successfully.\n", file3);
fclose(fsring1);
fclose(fsring2);
fclose(ftemp);
return 0;
}

[no name]

Используйте errno: Библиотечная функция C - strerror()[^]

munsine

где я должен использовать ?

Richard MacCutchan

Это означает, что одно из имен входных файлов не может быть найдено.

1 Ответов

Рейтинг:
1

KarstenK

Самая очевидная ошибка заключается в том, что ваш выходной файл не создается, потому что вы не указали действительный путь к файлу или ваше приложение не имеет прав на создание файла в этом месте.

Совет используйте флаг "w+" для выходного файла.

fopen(file3, "w+");//create and write

Извлеките сообщение об ошибке и используйте отладчик для решения этой проблемы.


munsine

Вышеуказанные изменения не работают. Я попытался изменить w на w+