| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1368 人关注过本帖
标题:磁盘文件的复制出现乱码!fgetc,fputc!
只看楼主 加入收藏
hl709632728h
Rank: 2
等 级:论坛游民
帖 子:20
专家分:14
注 册:2013-8-27
结帖率:100%
收藏
已结贴  问题点数:1 回复次数:9 
磁盘文件的复制出现乱码!fgetc,fputc!
以下是程序,和书书上一样,但是输出的文件中存在乱码,多了一个y上面两点的字符!各位帮忙想想是什么原因!多谢了!
#include <stdio.h>
#include <stdlib.h>
void main()
{
    FILE *read ,*write;
    char fileread[10], filewrite[10],ch;
    printf("请输入读文件的文件名:\n");
    scanf("%s",fileread);
    printf("请输入写文件的文件名:\n");
    scanf("%s",filewrite);
    if ((read=fopen(fileread,"rb"))==NULL)
    {
        printf("error!\n");
        exit(0);
    }
    if ((write=fopen(filewrite,"wb"))==NULL)
    {
        printf("error!\n");
        exit(0);
    }
   
    while (!feof(read))
    {
        fputc(fgetc(read),write);//个人感觉问题所在处
    }
    fclose(read);
    fclose(write);   
   
}
搜索更多相关主题的帖子: include write 
2013-08-27 20:51
hl709632728h
Rank: 2
等 级:论坛游民
帖 子:20
专家分:14
注 册:2013-8-27
收藏
得分:0 
另外,个人觉得 while (!feof(read))这句已经说明当遇到文件结束时,变进不去该循环了,因此不可能说输出什么结束符因此出现乱码的可能!实在想不通,求开通!
2013-08-27 20:53
木蕊
Rank: 2
等 级:论坛游民
帖 子:32
专家分:26
注 册:2013-6-22
收藏
得分:0 
fputc(fgetc(read),write);//加上这一句就ok了
while (!feof(read))
    {
        fputc(fgetc(read),write);    }
2013-08-27 23:12
hl709632728h
Rank: 2
等 级:论坛游民
帖 子:20
专家分:14
注 册:2013-8-27
收藏
得分:0 
回复 3楼 木蕊
谢谢你的回答!可是我加上了你说的那句,生成的代码仍然有乱码!
2013-08-28 08:08
hl709632728h
Rank: 2
等 级:论坛游民
帖 子:20
专家分:14
注 册:2013-8-27
收藏
得分:0 
1.zip (5.35 KB)
2.zip (5.38 KB)
2013-08-28 08:13
hl709632728h
Rank: 2
等 级:论坛游民
帖 子:20
专家分:14
注 册:2013-8-27
收藏
得分:0 
回复 5楼 hl709632728h
1 为read文件,2为write文件
2013-08-28 08:14
木蕊
Rank: 2
等 级:论坛游民
帖 子:32
专家分:26
注 册:2013-6-22
收藏
得分:1 
回复 4楼 hl709632728h
ch=fgetc(read);
    while (!feof(read))
    {
        fputc(ch,write);//个人感觉问题所在处
        ch=fgetc(read);
    } //上面不是还有ch没用吗?  这样ok了   以前我也遇到过这样的问题   老师给我讲的 他叫我记住就行
暂时还不知道原因
收到的鲜花
  • hl709632728h2013-08-28 14:42 送鲜花  2朵   附言:我很赞同
2013-08-28 11:42
C_printf
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:102
专家分:122
注 册:2010-1-26
收藏
得分:1 
当 fgetc(read) 返回为EOF时,feof()函数才知道是eof(end of file)了
但是晚了,你已经把EOF写到文件中了。。。
正确的做法 就是楼上的做法。
收到的鲜花
  • hl709632728h2013-08-28 14:42 送鲜花  2朵   附言:我很赞同
2013-08-28 13:14
hl709632728h
Rank: 2
等 级:论坛游民
帖 子:20
专家分:14
注 册:2013-8-27
收藏
得分:0 
回复 8楼 C_printf
谢谢你的回答!看你的解释,我总算弄明白了!太谢谢你了!要找个明白的透透彻彻的人给我讲讲可真难!所幸遇到了你,开心
2013-08-28 14:39
hl709632728h
Rank: 2
等 级:论坛游民
帖 子:20
专家分:14
注 册:2013-8-27
收藏
得分:0 
回复 7楼 木蕊
谢谢你哈!终于遇到大神了!要找个能帮我的人可真难!以后有问题还找你哈!希望你不吝赐教!
2013-08-28 14:41
快速回复:磁盘文件的复制出现乱码!fgetc,fputc!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013911 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved