#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中的所有内容?

最佳答案

您要使用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);


还是类似的直截了当?

关于c - 如何将任意内容输出到stdout?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5691948/

10-13 09:48