bbs.ChinaUnix.net
首页 | 微博 | 新闻 | Linux | FreeBSD | AIX | Windows | 博客 | 论坛 | 存储 | 网络 | 人才 | Wiki | 资料 | 读书 | 手册 | 下载 | 空间 | 搜索
  免费注册 | 忘记密码 | 会员登录 | 搜索 | 帮助 


[C] 麻烦大家帮我调一个fread的小程序

  首页 » 论坛 » C/C++ »
[打印] [收藏] [本帖文本页] [推荐此主题给朋友]

#include <stdio.h>
int    main(void)
{
        char buf[10],buf1[10];
        FILE *fp;
        int n;
        fp = fopen("aaaa","r");
        fread(buf,3,1,fp);
        buf[3] =  '\0';
        n=fread(buf1,2,1,fp);
        buf1[2] =  '\0';
        printf("n=%d,buf=%s,buf1=%s",n,buf,buf1);
        return 0;
}
运行结果
n=0,buf=abc,buf1=
>
为什么会换行输出呢?



你文件的内容是什么啊?
__________________________________
我听饼干mm说的:一个人越在意的地方,就是最令他自卑的地方



回复 #2 5毛党党员 的帖子

abc



那程序的结果没错啊。。。
__________________________________
我听饼干mm说的:一个人越在意的地方,就是最令他自卑的地方



回复 #4 5毛党党员 的帖子

n=0,buf=abc,buf1=
>
我觉得应该是
n=0,buf=abc,buf1= >
为什么会换行啊





QUOTE:
原帖由 5毛党党员 于 2009-1-7 09:25 发表
你文件的内容是什么啊?



读到回车了吧
__________________________________
想:一群人做同一行业,上班的时间可以一边工作一边在线交流,可能离的很远,也可能近在咫尺。
北京、嵌入式开发、linux,有一定开发经验,符合这三条就可以加进来我的qq群:40298332



回复 #6 eveson 的帖子

n的值是0,说明没有读到值,那么换行符是哪来的啊?





QUOTE:
原帖由 wangxiaoguang 于 2009-1-6 17:58 发表
n的值是0,说明没有读到值,那么换行符是哪来的啊?



buf1没有初始化。
__________________________________
Santa Monica





QUOTE:
原帖由 wangxiaoguang 于 2009-1-7 09:58 发表
n的值是0,说明没有读到值,那么换行符是哪来的啊?



不好意思,没仔细看,我运行了下,我这没有换行输出啊。
你确定每次运行结果都这样吗?
__________________________________
想:一群人做同一行业,上班的时间可以一边工作一边在线交流,可能离的很远,也可能近在咫尺。
北京、嵌入式开发、linux,有一定开发经验,符合这三条就可以加进来我的qq群:40298332





QUOTE:
原帖由 wangxiaoguang 于 2009-1-7 09:49 发表
n=0,buf=abc,buf1=
>
我觉得应该是
n=0,buf=abc,buf1= >
为什么会换行啊




n=0,说明fread没读到数据,buf1的内容没有改变,你的buf1原来的内容未知。如果在fread前,memset(buf1,0,sizeof(buf1)),会得到你预计的结果。


  首页 » 论坛 » C/C++ »
Copyright © 2001-2010 ChinaUnix.net All Rights Reserved     联系我们:

感谢所有关心和支持过ChinaUnix的朋友们    转载本站内容请注明原作者名及出处

京ICP证041476号


清除 Cookies - ChinaUnix - Archiver - WAP - TOP