在 C++ 中使用 ifstream 时遇到问题

Having issues using ifstream in c++

本文关键字:遇到 问题 ifstream C++      更新时间:2023-10-16

我使用 fstream 将文件读取到向量时遇到了一些问题。我有两个类似的函数,一个用于读取,一个用于写入文件。

    void Prime::writePrimes(void){
    int i = primes.size();
    ofstream fout;
    fout.open("primes.txt", ios::out);
    if (fout.is_open()){
        for (int j = 0; j < i; j++){
            fout << primes[j] << endl;
            }
        }
    }

void Prime::readPrimes(void){
ifstream fin;
fin.open("prime.txt", ios::in);
if (fin.is_open()){
    while (fin){
        int b;
        cin >> b;
        addPrimes(b);
    }
    fin.close();
}
}

虽然writePrime工作得很好,但readPrime不会进入if条件。有人有解决问题的想法吗?

cin >> b应该fin >> b 。 控制阅读循环的更好方法是

int b;
while (fin >>b)
    addPrimes(b);