c++ - 在 C++ 中读取多行输入

标签 c++

我正在尝试从 C++ 命令行读取多行输入并将它们存储到一个数组中。这是我的代码。

std::string line;
    int in;
    std::vector<std::string> v;

    while(std::getline(std::cin, line)){
        if(line == "^D") break;
        v.push_back(line);
    }
    for(auto it = v.begin(); it != v.end(); it++){
        std::cout<<*it<<std::endl;

    }

stdin 进入无限循环,我似乎无法弄清楚如何防止这种情况发生。基本上,目标行为是在没有任何输入的情况下连续两次按下 enter 应该终止 stdin 循环并运行程序。

最佳答案

我会测试字符串是否为空。如果是这样,打破。像这样:

#include <string>
#include <vector>
#include <iostream>

int main(){

std::string line;
std::vector<std::string> v;

while(std::getline(std::cin, line)){
    if (line.empty()){
        break;
    }
    v.push_back(line);
}

std::vector<std::string>::iterator it;

for (it = v.begin(); it != v.end(); it++){
    std::cout << *it << '\n';
}

return 0;
}

关于c++ - 在 C++ 中读取多行输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33924558/

相关文章:

c++,从文件读取到结构,然后读取到 vector (结构被插入 vector 太多次而不是一次)

c++ - AVL树插入方法导致段错误

c++ - const 丢弃限定符 c++

c++ - 有什么理由更喜欢 memset/ZeroMemory 而不是 WinAPI 结构的值初始化?

c++ - 为什么 std::array 临时 constexpr 的 operator[] 不是?

c++ - 使用可变参数函数将整数和/或整数数组转换为单个int数组

c++ - for循环逻辑错误?

c++ - 如何用visual studio 2008打开vcxproj(visual c++项目)

c++ - 如何使用智能指针为单链表实现复制构造函数

c++ - 如何在不使用变量的情况下启用 Boost Program Options 中的其他选项?