чтение из стандартного ввода в C ++

Я пытаюсь читать из стандартного ввода, используя C ++, используя этот код

<code>#include <iostream>
using namespace std;

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

когда я компилирую, я получаю эту ошибку ..

<code>[[email protected] 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
</code>

любые идеи чего не хватает?

Ответы на вопрос(1)

Решение Вопроса

input_line.

Добавь это

string input_line;

И добавь это.

#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;
}
 Martin Bonner06 апр. 2016 г., 10:11
@ KerrekSB -return 0 может подразумеваться, но это неприятная бородавка, унаследованная от C. Намного лучше быть явным.
 Kerrek SB05 мая 2012 г., 19:52
Без утечки строки в объем окружения:for (string s; getline(cin, s); ) { cout << s << endl; }. Также,return 0 подразумевается, нет необходимости прописывать это.
 Andrew Tomazos24 янв. 2017 г., 00:23
@ MartinBonner: не согласен. Неявный возврат 0 на main - это нормально.

Ваш ответ на вопрос