2017-04-25 9 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); 
} 

coutsはうまく動作しますが、cinはsoooo bugedです。 最初のシンクの間に私は何を入力しているのか分からず、もう一度enterを2回押す必要があります。 私も何も表示されていないと私は任意のキー、プログラムがクラッシュC++ <iostream> cinが正常に動作しない

+0

コード。あなたの問題は他のところにあります。 –

+1

「世界(高さ、幅);あなたはどう思いますか? –

+1

私のアドバイスは、デバッガの使用方法を学ぶことです。そして、ある種のコンパイラやシステムバグが見つかったと思って急いではいけません。 – drescherjm

答えて

1

ラインを押しながら

World(height, width); 

は一時オブジェクトを作成し、それを破棄しcinをsecendながら。現在のオブジェクトのメンバ変数は決して適切に初期化されません。

コードを簡略化します。コードを移動して、入力データを呼び出す関数に入力データを取得します。たとえば、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); 

は、(実際のメンバ変数で heightMemberwidthMemberを置き換える)デフォルトのコンストラクタを簡素化:あなたは私たちが動作するはず見せている

World::World() : heightMember(0), widthMember(0) {} 
関連する問題