1. ホーム
  2. c++

[解決済み] c++でstdinから読み取る

2022-03-06 21:04:25

質問

C++を使用してstdinから読み込もうとしています。

#include <iostream>
using namespace std;

int main() {
    while(cin) {
        getline(cin, input_line);
        cout << input_line << endl;
    };
    return 0;
}

コンパイルすると、次のようなエラーが発生します。

[root@proxy-001 krisdigitx]# g++ -o capture -O3 capture.cpp
capture.cpp: In function âint main()â:
capture.cpp:6: error: âinput_lineâ was not declared in this scope

何が欠けているのか、何か思い当たることはありますか?

どのように解決するのですか?

変数が定義されていません。 input_line .

これを追加します。

string input_line;

そして、このincludeを追加します。

#include <string>

これが完全な例です。whileループの後のセミコロンも削除して、次のようになります。 getline の内部で、ストリームの終わりを適切に検出することができます。

#include <iostream>
#include <string>

int main() {
    for (std::string line; std::getline(std::cin, line);) {
        std::cout << line << std::endl;
    }
    return 0;
}