2015-07-20 43 views
1

我的C++代碼編譯並運行,但沒有輸出打印到控制檯。我認爲它與字符串變量有關,但我不確定。我總是noob,任何幫助將不勝感激。我在GNU GCC編譯器中使用了代碼塊。代碼編譯,但沒有控制檯輸出

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

int main() 
{ 
    string botlong, botshort, secondline; 
    botlong = "bottles of beer on the wall,"; 
    botshort = "bottles of beer"; 
    secondline = "Take one down and pass it around,"; 
    for(int bottles = 99; bottles<=0; bottles--) 
    { 
     cout<<bottles <<botlong <<bottles <<botshort; 
     for(int lostB = 98; lostB<=0; lostB--) 
     { 
      cout<<secondline<<lostB<<botlong; 
     } 
    } 
    return 0; 
}; 
+0

您是否嘗試添加「endl」以查看一些結果? – alifirat

+0

嗯。試圖添加一個新的行到你的字符串?像做''endl'一樣。根據你的環境,沒有換行符的字符串可能會產生奇怪的效果...... – GhostCat

+0

@alifirat是正確的,你應該在程序結束之前刷新流(或任何流)。 – Timo

回答

5

它必須是>=而不是<=,否則你的循環沒有輸入:

for(int bottles = 99; bottles >= 0; --bottles) 
{ 
    cout << bottles << botlong << bottles << botshort; 
    for(int lostB = 98; lostB >= 0; --lostB) 
    { 
    cout << secondline << lostB << botlong; 
    } 
} 
+0

就是這樣。我很感激幫助。我想用我的方式,表達式(瓶<= 0)從來都不是真的,所以它從來沒有進入循環。謝謝你幫我理解這一點! –

0

我覺得你在for循環條件不上開始舉行。你有一個錯字,糾正bottles<=0bottles>=0和相同的下一個for循環。

+0

就是這樣,謝謝!你和上面的回覆幫了我很多! –