一个很简单的C语言运行问题,求解答!

#include<stdio.h>voidmain(){FILE*fp1,*fp2;fp1=fopen("file1.c","r");fp2=fopen("file2.c... #include<stdio.h>
void main()
{
FILE * fp1,* fp2;
fp1=fopen("file1.c","r");
fp2=fopen("file2.c","w+");
while(!feof(fp1))
putchar(fgetc(fp1));
rewind(fp1);
while(!feof(fp1))
fputc(fgetc(fp1),fp2);
while(!feof(fp2))
putchar(fgetc(fp2));
fclose(fp1);
fclose(fp2);
}
我想知道为什么加了第三个while语句后,运行就出问题了!file1.c的代码在下面,
初学C,望大神舍身赐解!

#include<stdio.h>
#include<stdlib.h>
void main()
{
FILE * fp;
char ch,ch1,filename[10];
printf("input filename\n");
scanf("%s",filename);
if((fp=fopen(filename,"w+"))==NULL)
{
printf("cannot open this file\n");
exit(0);
}

ch=getchar();
printf("情输入字符串\n");
ch=getchar();

while(ch!='#')
{
fputc(ch,fp);
putchar(ch);
ch=getchar();
}
putchar(10);
fclose(fp);
}
展开
 我来答
andsom
2013-03-03 · TA获得超过753个赞
知道小有建树答主
回答量:313
采纳率:0%
帮助的人:118万
展开全部
你仔细看看第一个循环与第二个循环中的。rewind(...)方法是起什么作用的。你就会明白,为什么加了第三个循环就出错了。

其实原因很简单,颤基因为第二个循环之后,文件茄首谨指针已经指向了文件尾。而在第三个循芹液环开始时,你没有将文件指针回到文件头,而是继续读取,故出现了错误。
anan640925
2013-03-03 · TA获得超过5421个赞
知道大有可为答主
回答量:4868
采纳率:51%
帮助的人:1078万
展开全部
好复杂的程序,你好牛啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a117616
2013-03-03 · TA获得超过108个赞
知道答主
回答量:165
采纳率:0%
帮助的人:84.8万
展开全部
好心告诉你,这种东西最好自己找,不然你永远学不好,加油吧!高手都是这么过来的。自强。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式