首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

“w+”“a+”“r+”有关问题

2013-01-06 
“w+”“a+”“r+”问题我写了一段代码,想试验一下文件的同时的读写,就是“w+”“a+”“r+”,但是并不知道为什么结果不

“w+”“a+”“r+”问题
我写了一段代码,想试验一下文件的同时的读写,就是“w+”“a+”“r+”,但是并不知道为什么结果不对,求解?
# include <stdio.h>
# include <stdlib.h>
int main (void)
{
FILE *in,*out;
char filename_in[40],filename_out[40];
printf("please enter the filename:\n");


printf("From:\n");
scanf("%s",filename_in);
if((in=fopen(filename_in,"r"))==NULL)
{
printf("can't find\n");
system("pause");
exit(0);
}
printf("file found!\n");


printf("To:\n");
scanf("%s",filename_out);
if((out=fopen(filename_out,"r+"))==NULL)
{
printf("can't find\n");
system("pause");
exit(0);
}
printf("file found!\n");


while(!feof(in))
{
fputc(fgetc(in),out);

}
printf("\n");
while(!feof(out))
{
fputc(fgetc(out),stdout);
}
putchar(10);
system("pause");
return 0;
}

[解决办法]

引用:
引用:你需要在printf("\n");和while(!feof(out))之间加上rewind(out);
原因是之前的fgetc(in)已经使文件指针移到了文件尾部,现在用rewind重新设定文件指针
哦哦,是不是说在把in的每个字符写入out的每个字符中,都有指针移一位 ,最后复制全了,会把指针移到尾部    
        ……

是这样的,每读一个,文件指针会自动后移

热点排行