我注意到我的一些程序在C++中的奇怪行爲,當我試圖弄清楚它是什麼時,我發現,控制檯輸出發生了錯誤。我用相同的行爲使用iostream和cstdio函數。當我在控制檯上打印某些東西時,它根本不顯示。這裏是我用於觀察這種奇怪行爲的代碼。 這段代碼propertly輸出一切(即使它不應該IMO):在簡單的C++程序中沒有控制檯輸出
#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」之前刪除空格,沒有任何區別。但是,當我在程序的最後放置更多與「\ n」相同的printf函數時,所有內容都可以正確顯示(當然是多次顯示)。 Iostream的行爲方式類似 - 使用endl不會導致任何內容出現在控制檯上。我究竟做錯了什麼?至於導致故障的原始代碼,我注意到在我的輸出中沒有出現任何東西,但在我的學校中,相同的代碼正確地輸出了所有內容。我正在NetBeans 8.0.2下工作。在此先感謝幫助
這些代碼片段中沒有太多的C++。 – 2014-12-06 17:11:48
至於你的問題,你是什麼意思,「不顯示任何東西」?您呼叫'scanf'會阻止*,直到您輸入新行。 – 2014-12-06 17:14:02
由於您將此標記爲C++,請嘗試使用'cin'和'cout'。 :-) – 2014-12-06 17:14:15