一个std :: endl生成三个std :: endl(s)?

时间:2017-07-02 10:04:14

标签: stdout stdin endl

我想为一个更大的程序编写一个小命令行解释器示例。但如果我输入“1 2 3”,则输出为“1 \ n2 \ n3 \ n”而不是“1 2 3 \ n”,如我所料。

#include <iostream>

int main(int argc, char **argv) {
    while (true) {
        std::string line;
        std::cin >> line;
        std::cout << line << std::endl;
    }

    return 0;
}

1 个答案:

答案 0 :(得分:1)

你应该尝试getline功能。 getline将提供您的预期输出

#include <iostream>

int main(int argc, char **argv) {
    while (true) {
        std::string line;
        std::getline (std::cin,  line);
        std::cout << line << std::endl;
    }

    return 0;
}