我有一个小问题。 这是用于编程任务。 打开文件,然后使用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);
我的问题是上面的代码为什么起作用,而第一个却不起作用?