Нет консольного вывода в простой программе на С ++
Я заметил странное поведение некоторых из моих программ на 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
очистить поток вывода и распечатать все данные.