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

时间:2014-12-19 14:29:03

标签: c++ fstream ifstream

我在使用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条件。 有人有想法解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

cin >> b应为fin >> b。也是一种控制阅读循环的更好方法

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