2013-07-27 132 views
0

我有以下代碼:爲什麼我的輸出包含0?

#include <iostream> 
#include <string> 
using namespace std; 

int main() 
{ 
    int xxx; 

    cout << "Enter an integer: 2011 "; 

    cin >> xxx; 

    cout << "Enter your name: John " ; 
    string yyy; 
    cin >> yyy; 

    cout << yyy << "entered" << xxx << endl; 

    return 0; 
} 

我預期的輸出是:

輸入一個整數:2011輸入您的名字:約翰·約翰進入2011

但是我得到了以下的輸出:

輸入一個整數:2011輸入您的名字:約翰entered0

  • 爲什麼我沒有得到預期的輸出?

  • 0從何而來?這似乎有點隨意我

而且有點不同的問題,這可能已經回答了前:

  • 如果我想我的輸出要整齊有序,如下圖所示,如何我會這樣做嗎?即我需要添加哪些代碼?

輸入您的整數:2011

輸入你的名字:約翰

約翰進入2011

+0

很抱歉,不能告訴第一個和第二個輸入示例之間的區別。你在做什麼不同? –

+0

爲了闡明,在運行代碼時,是否向行輸入了任何內容?即當第一個查詢出現時(輸入整數:2011),是否實際輸入了整數? – asuprem

回答

3

鍵入有一些事情不清楚你的代碼和解釋。我會盡可能地澄清和解釋。

首先,我運行它時程序工作正常。有一些美學問題,但我們現在會忽略它。

所以,你已經掌握了I/O的基礎知識。當你使用cout時,它輸出一些東西,當你使用cin時,它是一個輸入操作符。因此,你必須輸入的東西,它的工作,如下面的例子中:

​​

應該出現在控制檯什麼:

>Enter an integer: _ 

(下劃線光標)。然後你應該輸入一個整數

>Enter an integer: 231 

然後,按下回車鍵後,你輸入的整數231存儲在XXX中。在這裏,我要停下來問問,究竟是什麼在你的代碼「2011」的原因:

cout << "Enter an integer: 2011 "; 

如果你認爲這是輸入,其實不然。運行後,必須在控制檯窗口中手動編寫一些內容。如果是別的東西,它會讓人分心,並且......沒用。

相同的原理適用於字符串組件。如果你需要我澄清,請讓我知道。

此外,你真的應該使用空格來清除你的輸出。你的輸出文本是根據顯示:

cout << yyy << "entered" <<< xxx; 

相反,你應該使用:

cout << yyy << " entered " << xxx; 

這給出了一個更簡潔的輸出,你可以閱讀,即

>Johnentered231 

>John entered 231 

基於您的評論

這裏有一些鏈接,讓你開始:

語言: C++ Tutorial (follow them sequentially!)

編譯BloodShed Dev Visual Studio (C++ and more)

+0

哦,我明白了。這聽起來很合理。不過,我目前正在使用此網站:http://www.compileonline.com/compile_cpp_online.php。在這裏,我沒有得到>輸入一個整數:_,我做錯了什麼或對你來說也是如此? – user14445

+0

好的,我認真地建議使用編譯器而不是在線編譯器。有幾個,包括Visual C++ Express(免費),Bloodshed Dev和Borland。如果你認真學習並開始,我讚賞它,但最好用適當的工具來完成。在線編譯器似乎不接受輸入。 – asuprem

+0

是的,我同意100%,但可悲的是我遇到了我的C++ express問題(正如你在上一個問題中看到的那樣)。但因爲這不是這個問題的真正組成部分,所以請+1。如果你只能說明它爲什麼說輸入0(不是很重要,只是爲了感興趣),我會接受你的答案。 – user14445

0

你的節目,我工作得很好。另外,爲了整齊地組織你的輸出,使用空格和控制字符。如果你希望你的輸出更好看,我建議改變你的程序的輸出行:

cout << yyy << " entered " << xxx << endl; 

注意周圍使用空格的「進入」。另一件讓我誤解你的代碼的事情是你缺少變量的描述性名稱。給他們一些有意義的。例如,將「xxx」更改爲「number」,將「yyy」更改爲「name」。從長遠來看,它會爲您節省很多麻煩。

+0

你在用什麼IDE? – user14445

+0

我的IDE是Code :: Blocks,但重要的是編譯器。我使用MinGW和GCC 4.8.1。 –

0

我認爲你在cout和cin之間感到困惑。 cout僅用於輸出。在cout之後寫cin並且不給它任何輸入不會取值「John」。

例如,

cout << "Enter an integer: 2011 "; 

cin >> xxx; 

應該

cout << "Enter an integer: "; 

cin >> xxx; 

,那麼你在2011年

相關問題