2012-03-21 14 views
2

ユーザーが入力の終わりを示すまで(linuxのctrl-d)、文字列とそれから整数を読み込む必要があります。再び、私は立ち往生しています。現在、私は、whileループを持っている:入力終了までのCin

while (getline(cin, line)) 

しかし、それは全体のラインを与え、その後、私は、整数から文字列を区切るように見えることはできません。提案が最も高く評価されます! :)

+0

入力に「文字列」を構成する要素は何ですか?単一の単語、または複数の単語を含むフレーズ?私。 "George Bush 43"の有効な入力、または "George-Bush 43"の入力が必要ですか? –

+0

while(cin >> mystring >> myint){ –

答えて

4

文字列と整数が空白で区切られている場合。これを行う :

while(std::cin>>your_string>>your_num>>std::ws){} 

あなたはマニピュレータを自分で書くことによって、自分自身の区切り文字を選択することができます。

もう1つの方法は、あなたのやり方で行い、入力行をstringstreamに入れ、文字列と数字を抽出します。このアプローチは、あなたがストリームから別のストリームに入れるためにのみストリングを取得するので、私にはラウンドアバウトです。

+0

ありがとうございました!このフォーラムは私の先生よりも優れています!私は援助に感謝します。 – DangerMoose

+1

'' std :: ws'は必要ありません。次の入力は、介入するすべての空白を食べます。 –

+0

@Robᵩ:ありがとう、それを知らなかった。 – manasij7479

関連する問題