web-dev-qa-db-fra.com

lecture de stdin en c ++

j'essaie de lire stdin en utilisant c ++, en utilisant ce code

#include <iostream>
using namespace std;

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

quand je compile, j'obtiens cette erreur ..

[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

des idées manquent-elles?

44
krisdigitx

Vous n'avez pas défini la variable input_line.

Ajoute ça:

string input_line;

Et ajoutez ceci inclus.

#include <string>

Voici l'exemple complet. J'ai également supprimé le point-virgule après la boucle while, et vous devriez avoir getline à l'intérieur de while pour détecter correctement la fin du flux.

#include <iostream>
#include <string>

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