Почему мои выходные данные печатаются только в том случае, если после них есть еще один? - PullRequest
1 голос
/ 29 января 2010

Интересная маленькая ошибка здесь:

if (host != NULL) {
    printf("hi");
} else {
    printf("FAIL");
}
return 0;

вообще ничего не печатает, но:

if (host != NULL) {
    printf("hi");
} else {
    printf("FAIL");
}   
fprintf(stdout, "\n%s\n", (char *)&additionalargs);
return 0;

отпечатков

привет

а

Кто-нибудь знает, почему это так?

Ответы [ 3 ]

7 голосов
/ 29 января 2010

вывод printf на стандартный вывод буферизуется. Возможно, вы захотите посмотреть на fflush

5 голосов
/ 29 января 2010

Разница в \ n символах.

Когда вы печатаете символы, они накапливаются в буфере, который не отправляется на устройство вывода, пока не будет отправлен символ «конец строки».

0 голосов
/ 29 января 2010

попробуйте использовать fflush(stdout) перед вашим if условием.

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