2012-05-05 76 views
28

tôi đang cố gắng để đọc từ stdin bằng C++, sử dụng mã nàyđọc từ stdin trong C++

#include <iostream> 
using namespace std; 

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

khi tôi biên dịch, tôi nhận được lỗi này ..

[[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 

bất kỳ ý tưởng whats mất tích?

Trả lời

53

Bạn chưa xác định biến input_line.

Thêm này:

string input_line; 

Và thêm này bao gồm.

#include <string> 

Dưới đây là ví dụ đầy đủ. Tôi cũng đã xóa bỏ dấu chấm phẩy sau vòng lặp while và bạn cần có getline trong một khoảng thời gian để phát hiện chính xác kết thúc luồng.

#include <iostream> 
#include <string> 

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

cảm ơn loganfsmyth..works now .. – krisdigitx

+4

Nếu không bị rò rỉ chuỗi vào phạm vi môi trường xung quanh: 'for (string s; getline (cin, s);) {cout << s << endl; } '. Ngoài ra, 'return 0' được ngụ ý, không cần đánh vần nó. –

+1

@krisdigitx Vui lòng chấp nhận câu trả lời nếu nó giải quyết được vấn đề của bạn. – loganfsmyth

Các vấn đề liên quan