我想打印可以包含任何值的大数组,当0x00到来时,printf停止打印剩余字符。
int main(void) {
// your code goes here
char string[10]={0x31, 'a', 0x33,0x34, 0x35, 0x00,0x39, 0x40, 0x42,'\0'};
printf("%.*s\n", 5, string);
printf("%.*s\n", 10, string);
return 0;
}
输出:
1a345
1a345
注意:我可以按字符打印char,它可以工作,但是处理MB时速度太慢
答案 0 :(得分:1)
您始终可以尝试使用fwrite
来简单地将数据块写入文件或标准输出。但是请注意,写入stdout时不会显示零,因为cmd / terminal没有分配字符(据我所知)。
fwrite (string , sizeof(char), sizeof(string), stdout);
如果写入文件,则数据(甚至是零)应打印到文件中并存储,因此如果您以后希望重用它就不会成为问题。