尝试在写入文本后计算文本文件中相似项目的数量,但是我收到了No operator << matches these operands operand type are std::ofstream >> std::string。代码可以工作,但是在添加while循环时,我会收到错误textfile >> item。它与文本文件的流有关系吗?

#include "stdafx.h"
#include <fstream>
#include <iostream>
#include<string>
using namespace std;

int main()
{

    string accord[6];

    ofstream textfile;
    textfile.open("C:\\temp\\1.txt");

    cout << "Enter a 6 cylinder car : " << endl;

    for (int x = 0; x < 6; x++) {
        getline(cin, accord[x]);
    }
    for (int x = 0; x < 6; x++) {

        textfile << accord[x] << endl;
    }
    int count = 0;
    string item;
    while (!textfile.eof()) {
        textfile >> item;
        if (item == "6") {
            count++;
        }
    }

    cout << count << "found!" << endl;



    textfile.close();
    return 0;
}

最佳答案

可能因为错误提示,类 std::ofstream 没有该运算符。



正如您自己可以想象的那样,输出流是一个旨在在(输出)上写入的对象。因此,您不允许输入操作。

std::fstream 是文件的输出流和输入流。它支持operator<< operator>>

10-08 10:49