免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12345下一页
最近访问板块 发新帖
查看: 11115 | 回复: 47
打印 上一主题 下一主题

[C] c语言 关于文件的两个问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-12-23 23:43 |只看该作者 |倒序浏览
1,如何区分二进制文件和文本文件?
  输入同样的内容,fopen("","wb"与fopen("","w"创建的文件大小相同
2,它们的文件结束标志符是什么?
  使用
   c=fgetc(fp1)
   fputc(c,fp2)   总是会产生一个多余的字符!这个是不是文件结束符?

代码:

#include "stdio.h"
int copy(void)
{char c;
FILE *fp1,*fp2;
if((fp1=fopen("f:\\tc\\fputc\\fputc.dat","rb")==NULL) return 1;
if((fp2=fopen("f:\\tc\\fputc\\fputc1.dat","wb")==NULL) return 1;
while(!feof(fp1))
{c=fgetc(fp1);
  fputc(c,fp2);
}
fclose(fp1);
fclose(fp2);
return 0;
}
main()
{if(copy()) printf("文件不能顺利打开!";
printf("文件顺利复制!";
}

未命名.gif (1.86 KB, 下载次数: 50)

未命名.gif

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
2 [报告]
发表于 2003-12-24 09:07 |只看该作者

c语言 关于文件的两个问题

你把
char c;
这一句改成
int c;
再试一下。

论坛徽章:
0
3 [报告]
发表于 2003-12-24 10:14 |只看该作者

c语言 关于文件的两个问题

还是有的,好象是回车符之类的东东!  :-(

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
4 [报告]
发表于 2003-12-24 10:45 |只看该作者

c语言 关于文件的两个问题

晕了。
还是找个 16 进制编辑器打开看看吧!
看到底多出来一个什么东西?

论坛徽章:
0
5 [报告]
发表于 2003-12-24 11:18 |只看该作者

c语言 关于文件的两个问题

#include "stdio.h"
int copy(void)
{
        char c;
        FILE *fp1,*fp2;
        if((fp1=fopen("fputc.dat","rb")==NULL) return 1;
        if((fp2=fopen("fputc1.dat","wb")==NULL) return 1;
        while((c=fgetc(fp1))!=EOF)
                fputc(c,fp2);
        fclose(fp1);
        fclose(fp2);
        return 0;
}
main()
{
        if(copy()) printf("文件不能顺利打开!";
        printf("文件顺利复制!";
}

论坛徽章:
0
6 [报告]
发表于 2003-12-24 11:37 |只看该作者

c语言 关于文件的两个问题

多谢各位老大

fputc代码:
#include "stdio.h"
int test(void)
{int n;
char c;
FILE *fp;
  if((fp=fopen("f:\\tc\\fputc\\fputc.dat","wb")==NULL) return 1;
   for(n=0;n<10;n++)
     {c=getchar();
      fputc(c,fp);
     }
fclose(fp);
return 0;
}
main()
{
  if(test())
    {printf("File not sussfull create!";
     return 0;
    }
}


使用while((c=fgetc(fp1))!=EOF) 后:如图

未命名002.gif (2.94 KB, 下载次数: 51)

未命名002.gif

论坛徽章:
0
7 [报告]
发表于 2003-12-24 12:12 |只看该作者

c语言 关于文件的两个问题

使用UltraEdit10打开fputc1.dat文件,内容如下:

UltraEdit10中文版下载,带注册码:
http://www.dddown.net/SoftView.Asp?SoftID=332

未命名003.gif (1.65 KB, 下载次数: 54)

未命名003.gif

论坛徽章:
0
8 [报告]
发表于 2003-12-24 12:14 |只看该作者

c语言 关于文件的两个问题

FF 就是 EOF
你不该把它写回文件中的.

论坛徽章:
0
9 [报告]
发表于 2003-12-24 12:41 |只看该作者

c语言 关于文件的两个问题

晕了,能不能别用fgetc和fputc啊?fget,fprintf...不好吗

论坛徽章:
0
10 [报告]
发表于 2003-12-24 16:54 |只看该作者

c语言 关于文件的两个问题

你的原始代码
#include "stdio.h"
int test(void)
{int n;
char c;
FILE *fp;
if((fp=fopen("fputc.dat","wb")==NULL) return 1;
for(n=0;n<10;n++)
{c=getchar();
fputc(c,fp);
}
fclose(fp);
return 0;
}
main()
{
if(test())
{printf("File not sussfull create!";
return 0;
}
}

screen.jpg (3.17 KB, 下载次数: 50)

screen.jpg
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP