簡體   English   中英

在 C++ 中從標准輸入讀取

[英]reading from stdin in c++

我正在嘗試使用 C++ 從標准輸入讀取,使用此代碼

#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 <string>

這是完整的示例。 我還在 while 循環之后刪除了分號,並且您應該在 while 內使用getline以正確檢測流的結尾。

#include <iostream>
#include <string>

int main() {
    for (std::string line; std::getline(std::cin, line);) {
        std::cout << line << std::endl;
    }
    return 0;
}
//declaration:    
    int i2;
    double d2;
    string s2;
//reading by keyboard

    cin >> i2;
    cin >> d2;
    cin.get();
    getline(cin, s2);
//printing:
    cout << i+i2 << endl;    
    cout<< std::fixed <<std::setprecision(1)<< d + d2 << endl;
    cout << s << s2;

你可以運行這個代碼:

#include <iostream>
#include <iomanip>
#include <limits>

using namespace std;

int main() {
    int i = 4;
    double d = 4.0;
    string s = "hi ";
    

    int i2;
    double d2;
    string s2;
    cin >> i2;
    cin >> d2;
    cin.get();
    getline(cin, s2);
    cout << i+i2 << endl;
    cout<< std::fixed <<std::setprecision(1)<< d + d2 << endl;
    cout << s << s2;

    return 0;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM