Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/137.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;从输入的字符串中搜索CSV文件_C++_Visual Studio_Csv - Fatal编程技术网

C++ C++;从输入的字符串中搜索CSV文件

C++ C++;从输入的字符串中搜索CSV文件,c++,visual-studio,csv,C++,Visual Studio,Csv,我试图创建一个程序,将加载CSV文件,并根据输入的单词搜索文件,并返回任何包含该单词的行。CSV文件是推文的大量下载,包含以下列: 创建日期和时间 推特 tweets也被b'TWEET TEXT HERE'包围,因此在打印时需要删除b''。我无法更改任何与CSV文件有关的内容,因此无法手动删除它。我面临的问题是: 列出程序刚刚冻结的文件中的推文总量 正在从推文中删除b“” else语句导致“notfound”不断打印 我目前拥有的代码返回的推文包含输入的单词,但也有误报 运行以下代码时的电

我试图创建一个程序,将加载CSV文件,并根据输入的单词搜索文件,并返回任何包含该单词的行。CSV文件是推文的大量下载,包含以下列:

  • 创建日期和时间
  • 推特
tweets也被b'TWEET TEXT HERE'包围,因此在打印时需要删除b''。我无法更改任何与CSV文件有关的内容,因此无法手动删除它。我面临的问题是:

  • 列出程序刚刚冻结的文件中的推文总量
  • 正在从推文中删除b“”
  • else语句导致“notfound”不断打印
  • 我目前拥有的代码返回的推文包含输入的单词,但也有误报

    运行以下代码时的电流输出

    #include "stdafx.h"
    #include <cstring>
    #include <fstream>
    #include <iostream>
    #include <string>
    using namespace std;
    
    int main()
    {
        string token;
        ifstream fin;
        fin.open("sampleTweets.csv");
    
        if (fin.is_open())
        {
            cout << "File opened successfully" << "\n";
        }
        else {
            cout << "Error opening file" << "\n";
        }
    
        cout << "Enter search word: ";
        cin >> token;
        "\n";
    
        string line;
        while (getline(fin, line)) {
            if (line.find(token) != string::npos) {
                cout << line << endl;
            } else {
            cout << token << " not found" << endl;
        }
        }
    
        fin.close();
        char anykey;
        cout << "press any key";
        cin >> anykey;
        return 0;
    
    }
    
    #包括“stdafx.h”
    #包括
    #包括
    #包括
    #包括
    使用名称空间std;
    int main()
    {
    字符串标记;
    流鳍;
    财务公开(“sampleTweets.csv”);
    如果(fin.is_open())
    {
    cout您可以使用
    擦除
    删除
    中的“b”

    if (line.find(token) != string::npos){
      int n= line.find(",");
      line.erase(n+1, 3);
      cout << line << endl;
    }
    
    编辑:您可以删除额外的引号和逗号,如下所示:

    line[n] = ' '; // change comma int space
    line.erase(n+1, 4); // remove "b""
    line.resize(line.size()-5); // remove trailing """,,
    

    为什么要无条件地运行
    cout-Ah,这可以解释它总是打印出来的事实…cin>>令牌;“\n”;我不确定您想在这里实现什么,但这是错误的。@Willl这是将用户输入作为他们希望搜索的内容。您希望输出行的具体外观是什么样的?谢谢您,它删除了b,但是仍然有很多逗号和"理想情况下,我也想删除它。目前输出看起来是这样的@KaiJones:这就是我询问输出线的原因。对不起,我以为我之前回答了我的错误。你知道为什么else循环一直在运行,即使它应该运行吗?@KaiJones:是的,但你必须自己解决这个问题。你误解了吗当你写代码的时候,不要去理解循环和条件的逻辑,告诉你答案对你没有好处。我建议你尝试使用更简单的程序,使用
    while
    if
    else
    int count = 0;
    while (getline(fin, line)) {
      ++count;
      ...
    }
    
    line[n] = ' '; // change comma int space
    line.erase(n+1, 4); // remove "b""
    line.resize(line.size()-5); // remove trailing """,,