You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++如何读取用户输入的多行字符串并完成正则匹配处理

C++ 读取多行输入实现方案

你现有代码仅调用了一次getline,只能读取单行输入,要获取用户输入的全部多行内容,只需通过循环持续调用getline直到输入流终止即可,修改后代码如下:

#include <iostream>
#include <string>
#include <regex>

using namespace std;

int main()
{
    string all_input;
    string current_line;
    // 循环读取每一行,直到输入结束
    while (getline(cin, current_line)) {
        all_input += current_line;
        all_input += '\n'; // 若不需要保留原始换行符可删除此行
    }

    std::regex const pattern("ab+c");
    std::smatch match;
    for (auto it = all_input.cbegin(), e = all_input.cend();
         std::regex_search(it, e, match, pattern); it = match[0].second) {
        std::cout << "Match: " << match.str() << "\n";
    }

    return 0;
}

注意事项

  • 手动输入时的结束触发方式:Windows系统输入完成后按Ctrl+Z再回车,Linux/macOS系统按Ctrl+D即可终止输入
  • 该实现同时支持从文件重定向输入,可直接读取整个文件的全部内容
  • 若你的业务逻辑不需要保留换行符,删除拼接\n的代码行即可

内容的提问来源于stack exchange,提问作者Psh programmer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 09:36:02