2017-04-25 101 views
-6
World::World() { 
    int width = -1; 
    int height = -1; 

    cout << "Aby rozpoczac gre wpisz rozmiar planszy" << endl; 
    cout << "Aby uruchomic domyslne romiary zostaw pole puste" << endl; 

    cout << "Podaj szerokosc: "; 
    // I don't see what i'm typing and i need to press enter twice; 
    cin >> width; 

    cout << "Podaj wysokosc: "; 
    // I don't see what i'm typing too and make my program crash 
    cin >> height; 

    World(height, width); 
} 

cout工作很好,但cin是soooo buged。 雖然第一個cin我沒有看到我在輸入什麼,我需要按兩次輸入; 雖然SECEND CIN我什麼也沒看到過,雖然我按任意鍵,程序崩潰C++ <iostream> cin不能正常工作

+0

的代碼你展示我們應該工作。你的問題在別處。 –

+1

你覺得'世界(高度,寬度)是多少'? –

+1

我的建議是學會使用調試器。並且不要急於認爲您發現了某種類型的編譯器或系統錯誤。 – drescherjm

回答

1

World(height, width); 

構造一個臨時對象,將其丟棄。當前對象的成員變量永遠不會被正確初始化。

簡化您的代碼。移動代碼以獲取輸入數據給調用它的函數。例如,在main中使用它。

int width = -1; 
int height = -1; 

cout << "Aby rozpoczac gre wpisz rozmiar planszy" << endl; 
cout << "Aby uruchomic domyslne romiary zostaw pole puste" << endl; 

cout << "Podaj szerokosc: "; 
// I don't see what i'm typing and i need to press enter twice; 
cin >> width; 

cout << "Podaj wysokosc: "; 
// I don't see what i'm typing too and make my program crash 
cin >> height; 

World w(height, width); 

簡化默認construtor(與真正的成員變量替換heightMemberwidthMember):

World::World() : heightMember(0), widthMember(0) {}