如何向stdout输出任意内容?

时间:2011-04-17 06:27:52

标签: c

#include <stdio.h>

int main()
{
        int i = 0;
        char stuffing[44];
        for(i = 0; i <= 40; i+=4)
        {
                *(int *)&stuffing[i] = 0x4004f8;
        }
        puts(stuffing);
}

以上内容一旦到达0x00就会终止,如何输出stuffing中的所有内容?

1 个答案:

答案 0 :(得分:2)

您希望使用fwrite输出任意二进制数据:

fwrite(stuffing, 1, sizeof(stuffing), stdout);

puts函数写入C字符串,C字符串由'\0'终止(AKA 0x00)。

更新:在其他地方的评论中,您说您希望“gets”读取“ASCII字符”。首先,不要使用gets,永远不要提及它的名字。其次,如果您只想要ASCII字符,那么为什么要在将原始字节填充到char缓冲区时遇到麻烦呢?

printf("%d\n%d\n%d\n%d\n", 0x4004f8, 0x4004f8, 0x4004f8, 0x4004f8);

或类似的直接前进?