Нет консольного вывода в простой программе на С ++

Я заметил странное поведение некоторых из моих программ на C++, и когда я пытался выяснить, что его вызвало, я обнаружил, что что-то не так происходит с выходами моей консоли. Я использовал функции iostream и cstdio с одинаковым поведением. Когда я что-то печатаю на консоли, это вообще не отображается. Вот коды, которые я использовал для наблюдения за этим странным поведением. Этот фрагмент кода выводит все правильно (даже если это не IMO):

#include <cstdio>
using namespace std;
int main(void) {
    int a = 0;
    scanf("%d", &a);
    a++;
    printf("result is %d", a);
}

Однако этот (правильный, я думаю) ничего не отображает, только сообщение о завершении работы

#include <cstdio>
using namespace std;
int main(void) {
    int a = 0;
    scanf("%d", &a);
    a++;
    printf("result is %d \n", a);
}

Я также попробовал это с удаленным пробелом перед "\n" без разницы. Однако, когда я помещаю в программу больше одинаковых функций printf с символом \ n в конце, все отображается правильно (конечно, несколько раз). Iostream ведет себя аналогичным образом - использование endl не приводит к появлению чего-либо на консоли. Что я делаю неправильно? Что касается исходного кода, который вызывал сбои в работе, я заметил, что на моем выходе ничего не появилось, но в моей школе тот же код выводил все правильно. Я работаю под NetBeans 8.0.2. Заранее спасибо за помощь

1 ответ

Все выходные данные буферизуются до того, как они будут напечатаны на консоли. Ты можешь использовать fflush или же \n очистить поток вывода и распечатать все данные.

Другие вопросы по тегам