Я хочу, чтобы прочитать текстовый файл и передать его содержимое в другой текстовый файл в C, Вот мой код:копирование содержимого текстового файла в C
char buffer[100];
FILE* rfile=fopen ("myfile.txt","r+");
if(rfile==NULL)
{
printf("couldn't open File...\n");
}
fseek(rfile, 0, SEEK_END);
size_t file_size = ftell(rfile);
printf("%d\n",file_size);
fseek(rfile,0,SEEK_SET);
fread(buffer,file_size,1,rfile);
FILE* pFile = fopen ("newfile.txt" , "w+");
fwrite (buffer , 1 ,sizeof(buffer) , pFile);
fclose(rfile);
fclose (pFile);
return 0;
}
проблема, с которой я столкнулся это внешний вид в ненужных данных в принимающем файле, Я попробовал функцию fwrite с «sizeof (buffer)» и «file_size». В первом случае он отображает большее количество бесполезных символов, а во втором случае количество бесполезных символов только 3, я был бы очень признателен, если бы кто-то указал мою ошибку и сказал мне, как избавиться от этих бесполезных персонажей ...
Большинство файлов размером более 100 байт. Поэтому вам нужно прочитать файл в кусках, чтобы избежать переполнения буфера. Я бы использовал более большой размер буфера (например, 4096 или даже 65536 байт) и повторил это. Другой совет в ответах о том, как обратить внимание на порядок аргументов на 'fread()' и возвращаемое значение, также верен. –