我在使用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条件。 有人有想法解决这个问题吗?
答案 0 :(得分:2)
cin >> b
应为fin >> b
。也是一种控制阅读循环的更好方法
int b;
while (fin >>b)
addPrimes(b);