Это делает меня орехами Я пытаюсь создать простую программу для копирования любого типа файла с помощью следующего кода, но результат, который я получаю, неожиданен (один или два дополнительных символа в конце скопированного файла?). Например, если мой исходный файл This is an example
скопированный файл содержит This is an exampleÿ
Дополнительный символ в конце во время копирования?
КОД
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp,*fpp;
char pbuff, fname[32];
int i;
printf(" FILE NAME TO OPEN : ");
scanf(" %32s", fname);
fp = fopen(fname, "rb");
fpp = fopen("file", "wb");
if(fp==NULL)
{
printf("NO SUCH FILE. EXITING NOW.");
getch();
exit(1);
}
while(!feof(fp))
{
pbuff = fgetc(fp);
fputc(pbuff, fpp);
}
printf("SUCCESSFULLY CREATED!");
fclose(fp);
fclose(fpp);
getch();
return(0);
}
Может кто-нибудь помочь мне с этим? Я буду очень благодарен.
feof() внутри время цикла может создать проблему, не используйте его, используйте fgets(). – udit043
Вы могли бы быть более конкретными? – Naveen
прочитайте это http://stackoverflow.com/questions/5431941/why-is-while-feof-file-always-wrong – udit043