文字列の入力

int 型と string 型を交互に入力します。

前田稔(Maeda Minoru)の超初心者のプログラム入門

プログラムの説明

  1. num にゼロが入力されるまでループします。
    いきなり入力命令を実行するとハングアップと思われるので、メッセージを表示します。
        while(1)
        {   cout << "数値を入力して下さい(0 で終了): \n";
        
  2. num は数値を入力する int 型の領域です。
    num に数値を入力します。
    ゼロが入力されると終了です。
        int    num;
    
        cin >> num;
        if (num == 0)   break;
        
  3. 数値入力の後で、キーボードバッファに残っているコードをクリアします。
    INT_MAX が最大文字数で、'\n' を見つけるまでクリアします。
    cin.ignore(INT_MAX,'\n'); //キーボードバッファをクリア
  4. string s が string の定義です。
    s の長さは char[256] のように固定長では無く、代入する文字列の長さに合わせてくれます。
    getline() でコンソールから一行分(\n まで)入力します。
    string s;
    getline(cin, s);
  5. 入力したデータを表示します。
    cout << "入力された数値は: " << num << " で文字列は: " << s << endl;

【NOTE】

数値を入力するときに、数字以外の文字がタイプされると、その文字がキーボードバッファに残って以降の入力に悪影響を与えます。
また一文字入力と組み合わせるとキーボードバッファに残っている制御コードなどが入力される場合があります。
従来は次の命令でキーボードバッファをクリアしていました。
rewind(stdin);

超初心者のプログラム入門(C/C++)