У меня есть небольшой вопрос. Это для программирования. Откройте файл, затем с помощью fgets () скопируйте содержимое файла, а затем с помощью fputs () вставьте содержимое в новый файл.
Приведенный ниже код только вставляет букву снова и снова - это меняется каждый раз Я управлял этим.
char buffer[41];
FILE *fp_in;
FILE *fp_out;
fp_in =fopen(INPUTFILE, "rb");
if (fp_in==NULL)
{
printf("File %s cannot be opened!\n", INPUTFILE);
return;
}
fp_out =fopen(OUTPUTFILE1, "wb");
if (fp_out==NULL)
{
printf("File %s cannot be opened!\n", OUTPUTFILE1);
return;
}
printf("Reading from file using fgets()\n", INPUTFILE);
printf("writing to file using fputs() \n", OUTPUTFILE1);
fgets(buffer,41,fp_in);
fputs(buffer,fp_out);
fclose(fp_in);
fclose(fp_out);
Приведенная ниже настройка, использующая собственно имя файла для доступа к файлу вместо указателя, работает и вставляет содержимое первого файла.
char buffer[41];
FILE *fp_in;
FILE *fp_out;
fp_in =fopen(INPUTFILE, "rb");
if (fp_in==NULL)
{
printf("File %s cannot be opened!\n", INPUTFILE);
return;
}
fp_out =fopen("hurricane_out1.txt", "wb");
if (fp_out==NULL)
{
printf("File %s cannot be opened!\n", OUTPUTFILE1);
return;
}
printf("Reading from file using fgets()\n", INPUTFILE);
printf("writing to file using fputs() \n", OUTPUTFILE1);
fgets(buffer,41,fp_in);
fputs(buffer,fp_out);
fclose(fp_in);
fclose(fp_out);
Мой вопрос почему вышеуказанный код работает, а первый - нет?