標準入出力ストリーム 解答ページ | Programming Place Plus C++編【標準ライブラリ】 第27章

トップページC++編

C++編で扱っている C++ は 2003年に登場した C++03 という、とても古いバージョンのものです。C++ はその後、C++11 -> C++14 -> C++17 -> C++20 と更新されており、今後も 3年ごとに更新されます。
なかでも C++11 での更新は非常に大きなものであり、これから C++ の学習を始めるのなら、C++11 よりも古いバージョンを対象にするべきではありません。特に事情がないなら、新しい C++ を学んでください。 当サイトでは、C++14 をベースにした新C++編を作成中です。

問題①

問題① 標準入力から、複数行の文字列の入力を受け取るプログラムを作成してください。改行文字だけが入力されたときに終了するものとします。


行単位の入力には、std::getline関数(第2章)を使うのが簡単で、安全です。

#include <iostream>
#include <string>

int main()
{
    std::string s;

    while (std::getline(std::cin, s)) {
        if (s.empty()) {
            break;
        }
        std::cout << s << std::endl;
    }
}

実行結果:

xxx  <-- 入力
xxx
yyy  <-- 入力
yyy
     <-- 入力

std::getline関数の戻り値は basic_stream の参照なので、エラーが発生した場合にも whileループを抜けます。


参考リンク


更新履歴

’2017/2/4 新規作成。



第27章のメインページへ

C++編のトップページへ

Programming Place Plus のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
X で ポストフォロー LINE で送る noteで書く
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー
先頭へ戻る