首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

小弟我想要fprintf 的数组中有\0 ,如何把这个数组完整打印出来

2012-03-07 
我想要fprintf 的数组中有\0 ,怎么把这个数组完整打印出来?程序功能:接收EBCDIC报文并解码为ASCII,同时将

我想要fprintf 的数组中有\0 ,怎么把这个数组完整打印出来?
程序功能:
接收EBCDIC报文并解码为ASCII,同时将解码前、后的报文打印到日志文件。(其中解码调用公共函数实现。)

问题:
程序接收到的报文是EBCDIC码的,整段报文被存在了szAAA[1024]这个char型数组中,现在我想把szAAA中的内容用fprintf打印在我的日志文件中。但是BCD源码中不知道什么位置可能会出现/0(可能打到300位出现了/0,/0出现的位置完全不可知),fprintf打印到这里就认为结束了,但实际数组并未到底,解码前报文也就打印不完全了。

求教:
怎么把可能包含/0的定长数组的完整内容打印到文件中?

[解决办法]
size_t fwrite(
const void *buffer,
size_t size,
size_t count,
FILE *stream
);


[解决办法]
按位写好了.
[解决办法]
/0没有关系,不是 '\0 '就好了。
如果是 '\0 '的话,就按ls各位的方法就好了。
或者当作一个数组,用循环去处理
[解决办法]
szAAA[1024]这个char型数
===============
fprintf 不要 %s 控制方式就可以了:

int i, len;
...
len = sizeof(szAAA)/sizeof(char);
for(i=0; i <len; i++)
fprintf(fp, "%c ", szAAA[i]); //%c 逐个字符输出到指定文件即可

热点排行