永发信息网

c中的文件复制问题

答案:2  悬赏:30  手机版
解决时间 2021-07-29 11:06

问题描述:我在VC++6.0下写了下面这段小小程序,目的是把d:\lh.txt中的1000个字符复制到e:\lh.txt中。运行正常,无错误提示。但我查看e:\lh.txt文件中并无复制过来的字符。结果是:程序能正常执行,却没达到编写目的,请问是什么问题。

程序代码:

#include <stdio.h>
#include <stdlib.h>
void main()
{
int i;
FILE *fp1,*fp2;
if((fp1=fopen("d:\\lh.txt","r"))==NULL)
{
printf("Can not open file!\n");
exit(0);

}
if((fp2=fopen("e:\\lh.txt","w"))==NULL)
{
printf("Can not open file!\n");
exit(0);
}
for(i=1;i<=1000;i++)
{if(!feof(fp1)) break;
fputc(fgetc(fp1),fp2);
}
fclose(fp1);
fclose(fp2);
}

最佳答案

vc++6.0会出现这样的错误,我在编程时也遇到了,同样不知原因,如果你在fputc函数调用之后用


fflush(fp2);一下,也就是将目前的输出缓冲先写到fp2文件中,这样就行了。

全部回答

逻辑错误

for循环里面的

if(!feof(fp1)) break;

表示如果fp1未到达文件末尾即break,实际上没有执行任何fputc操作。

应改成

if(feof(fp1)) break;

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
青岛哪有卖空竹的?
1.75米穿1。05米的裤子可不可以
沈阳哪里进货饰品好
解放区焦作外贸仓(辉龙店)我想知道这个在什么
分手后不可以做朋友因为彼此伤害过也不可以做
怎样关闭QQ各项图标?
校内好友分享的视频打不开
RPD是瞳距的意思吗?
人,好做吗?
魔域,飞升任务,宝宝合到四十三星可以飞吗,
来个关于爱情的个性签名
怎样求充要条件
荷塘区株洲岳阳特色烧烤这个地址在什么地方,
长辈新年祝福短信,简易的祝福语发送朋友圈
已知招标项目中某工作只有一项紧后工作,该紧
推荐资讯
在鼻塞的情况下吃什么药最好???
查帐 打一数字名称
给衣服染色是否对身体有害?
上海黄浦区中高档的写字楼租金是多少?
利川市恩施正泰电器(利川销售部)在什么地方啊
制作寿司的竹帘,杭州哪里有的
钻石的辨认
靖州苗族侗族自治县怀化丝珂地址在哪里啊
棉花糖怎么样才不容易化呢?
诚心想养只QQ猪,如果哪位有送一只吧,非常感
抓周是什么意思,我家孩子抓周抓到带勾的称是
江岸区武汉怪兽充电(合风美发)怎么去啊,谁知
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?