コンソールから文字列を入力させ続けて、何も入力せずEnterを押すと終了する。
それまで入力した文字列の中から、最も長い単語と、最も短い単語を表示するプログラムを作りなさい。このとき、入力された文字列は、vectorで作った可変長配列に格納すること。
太字の部分の論理式でつまづいてしまった。
/*正しい答え*/ while (true) { cout << "文字列を入力:"; getline(cin, n); if (n != "") { cout << n << endl; p1.push_back(n); } else { break; } }
/*自分が考えたもの*/ while (n!="") { cout << "文字列を入力:"; getline(cin, n); cout << n << endl; p1.push_back(n); }
自分で考えたコードでは、whileで(n=="")がでるまで、処理を繰り返すということだが、
いつまでたっても、cinの入力が終わらない。
breakがなければ、whileを抜けることはできないのか。。
また、最初自分は,以下のようにNULLを使っていたが、これも「""」と意味が違うのか、、
while(n!="NULL"){}
教えていただきたいです。
環境は(コンパイラ等)? また、p1やnの変数の定義は?
断片だけでは分かりません。
nの型は?・・・文字列(char n[])あるいはstd::string?