Как вывести произвольный материал на стандартный вывод? - PullRequest
0 голосов
/ 17 апреля 2011
#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 Ответ

2 голосов
/ 17 апреля 2011

Вы хотите использовать fwrite для вывода произвольных двоичных данных:

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

Функция puts записывает строку C, а строки C завершаются на '\0' (AKA 0x00).

ОБНОВЛЕНИЕ : В других комментариях вы говорите, что хотите, чтобы "символы ASCII читались gets". Прежде всего, никогда не использует gets, никогда, даже не упоминайте его имя. Во-вторых, если вы просто хотите использовать символы ASCII, тогда зачем вам все время вставлять необработанные байты в буфер char, когда вы можете просто сделать это:

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

или что-то подобное прямо вперед?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...