2011-06-26 9 views
0

私は、シミュレーションのためにいくつかのパラメータを入力する必要があるプログラムを作成していますが、ほとんどの場合、毎回同じ値を入力していますので、 Enterキーを押すだけで、その値が使用されます。そう、彼らは彼らが望む任意の番号を入力するか、単にこれは私がこれまでデフォルト値でシミュレーションパラメータを入力する

持っているものである15

を使用するにはEnterキーを押しでき

Enter Some Parameter [15]: 

プロンプトは次のようになります

parameter = cin.get(); 
if(parameter == '\n') 
    parameter = defaultValue; 

これはうまく動作しますが、最初の桁だけで、私が処理しているパラメータがユーザーが入力した実際の値ではなく、どのような型にもキャストされてしまいます。

私は

cin >> parameter; 

を使用しますが、それは私が説明したように、デフォルト値を使用することはできません。

誰も私がこれを行う方法を知っていますか?

答えて

2

cin.getline()を使用できます。有効なパラメータを入力した場合は、パラメータを更新します。それ以外の場合は、デフォルトを使用してください。

3

あなたは、たとえば、代わりに文字の文字列を使用して試すことができます:

std::string s; 
getline(cin, s); 
if(s.empty()) // user pressed enter 
    s = defaultValue; 

これは、最初の桁のためではない動作しますが、行全体

+0

のためにあなたが 'もし(S =="を編集した場合")' 'if(s.empty())'と不要な一時的なものを避けるために、私はupvote :) –

+0

@Armen:Ok、私はそれを最適化します:) –

関連する問題