打印

C语言printf大文件

[复制链接]
1908|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
crazy2012|  楼主 | 2013-9-13 23:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在有个5M大小的TXT文件,想用printf的方法把TXT内容打印出来,发现下面的方法不能打印大文件,只能打印小点的文件,这个是什么情况。



当然我有修改过buf的大小,发现都不是很奏效啊。
#include <stdio.h>
char buf[1024];


void main(void)
{
        FILE *pf=fopen("copy.c","rb");
        

        
        while(!feof(pf))
        {
                memset(buf,0,1024);
                fread(buf,1,1024,pf);
                printf("%s",buf);
        }
        
        fclose(pf);
}


相关帖子

沙发
夏了个夏天| | 2013-9-14 08:00 | 只看该作者

使用特权

评论回复
板凳
ayb_ice| | 2013-9-14 09:07 | 只看该作者
这个真不懂

使用特权

评论回复
地板
ipman| | 2013-9-14 20:37 | 只看该作者
单片机?还是x86?

使用特权

评论回复
5
crazy2012|  楼主 | 2013-9-14 21:42 | 只看该作者
ipman 发表于 2013-9-14 20:37
单片机?还是x86?

PC机。

使用特权

评论回复
6
crazy2012|  楼主 | 2013-9-14 21:43 | 只看该作者
ipman 发表于 2013-9-14 20:37
单片机?还是x86?

想读取文件,然后通过串口发送出去。现在问题是文件大了,就不行了,文件小还可以。

使用特权

评论回复
7
hzhmcu| | 2013-9-14 22:56 | 只看该作者
fread(buf,1,1024,pf);
printf("%s",buf);
这个不是一个字符串结尾,是打不也来的。没有'/0'结尾

使用特权

评论回复
评分
参与人数 1威望 +6 收起 理由
原野之狼 + 6 赞一个!
8
crazy2012|  楼主 | 2013-9-14 23:06 | 只看该作者
hzhmcu 发表于 2013-9-14 22:56
fread(buf,1,1024,pf);
printf("%s",buf);
这个不是一个字符串结尾,是打不也来的。没有'/0'结尾 ...

你说的意思是说,printf必须打印以/0结尾的字符串?

使用特权

评论回复
9
hzhmcu| | 2013-9-16 08:35 | 只看该作者
crazy2012 发表于 2013-9-14 23:06
你说的意思是说,printf必须打印以/0结尾的字符串?

这个是必须的,你自己查一下相应的资料

使用特权

评论回复
10
crazy2012|  楼主 | 2013-9-16 09:21 | 只看该作者
hzhmcu 发表于 2013-9-14 22:56
fread(buf,1,1024,pf);
printf("%s",buf);
这个不是一个字符串结尾,是打不也来的。没有'/0'结尾 ...

我现在的猪妖目的是读取大文件,然后写入到串口。当然printf是为了监控下到底发了什么数据。所以需要printf下。

使用特权

评论回复
11
crazy2012|  楼主 | 2013-9-16 09:27 | 只看该作者
hzhmcu 发表于 2013-9-16 08:35
这个是必须的,你自己查一下相应的资料

那按照这个道理,我想打印这个5M的文件,岂不是得需要开辟一个5M的buffer,然后用printf一次性打印出来?

使用特权

评论回复
12
hzhmcu| | 2013-9-16 11:49 | 只看该作者
crazy2012 发表于 2013-9-16 09:27
那按照这个道理,我想打印这个5M的文件,岂不是得需要开辟一个5M的buffer,然后用printf一次性打印出来? ...

我对上位机不熟,不是你这个文件是否有'/0'的。如果没有,你可以在buffer后自己强加一下'/0'

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

150

主题

939

帖子

9

粉丝