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

如何使用C++打印CSV文件中包含指定关键词的完整行

问题根因

代码运行异常的核心原因是调用getline时指定了分隔符为逗号,, 导致每次仅读取CSV的单个字段而非完整行,匹配到关键词后自然只会输出对应字段,无法输出整行内容。

修正后可运行代码

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main()
{
    ifstream myfile("cabs.csv");
    const string target_keyword = "Back Bay";
    string current_line;

    while (getline(myfile, current_line))
    {
        if (current_line.find(target_keyword) != string::npos)
        {
            cout << current_line << endl;
        }
    }

    myfile.close();
    return 0;
}

主要修改说明

  • 移除getline的第三个分隔符参数,默认按换行符读取完整的一行内容
  • 将getline调用放在循环条件中,自动判断文件读取状态,避免读到无效内容
  • 用C++ string类原生的find方法判断关键词是否存在,无需转换为C风格字符串,写法更简洁
  • 将关键词变量移到循环外定义,避免循环内重复创建对象,提升运行效率

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 12:06:02