zoukankan      html  css  js  c++  java
  • C++出现 error: no match for 'operator>>' (operand types are 'std::ofstream {aka std::basic_ofstream<char>}' and 'char')

    从CSV文件中读取数据代码:

    bool speechManager::fileIsEmpty()
    {
        //创建文件流
        ofstream ifs(FILENAME, ios::in);
        //判断文件是否打开成功
        if(!ifs.is_open())
        {
            cout << "open false" << endl;
            return false;
        }
        char ch;
        ifs >> ch;
        if(ifs.eof())
        {
            //文件为空
            cout << "no records" << endl;
            ifs.close();
            return false;
        }
        //读取记录
        ifs.seekg(0, std::ios::beg);
        int count = 0; //记录总共记录有多少条
        vector<string> vec; //按行读取每一届记录,有几届就有几个string
        string str; //每一行读取的数据
        while(getline(ifs, str))
        {
            vec.push_back(str);
            count++;
        }
    
        //关闭文件
        ifs.close();
       return true;
    }

    运行报错:

    error: no match for 'operator>>' (operand types are 'std::ofstream {aka std::basic_ofstream<char>}' and 'char') ifs >> ch;

    分析和解决:

    上面的代码是用ofstream打开文件,即写入的方式,但是后面却用它来读取文件ifs >> ch,将ofstream换成输入流ifstream即可

  • 相关阅读:
    iPhone iPad发展史
    iOS 学习
    iOS 学习
    iOS 学习
    iOS 学习
    iOS 学习
    iOS 学习
    iOS 学习
    iOS 学习
    iOS 学习
  • 原文地址:https://www.cnblogs.com/BASE64/p/14333674.html
Copyright © 2011-2022 走看看