【发布时间】:2014-12-19 14:29:03
【问题描述】:
我在使用 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 条件。 有人有解决问题的想法吗?
【问题讨论】:
-
你不应该有
fin >> b;而不是cin >> b;吗?你确定这不是你的问题吗? -
您对文件的命名不同。我的意思是
prime.txt是否存在,因为你写了primes.txt -
@PiotrS。这应该是一个答案。这也是为什么
using namespace std;是一个坏 主意的另一个原因。 -
@Angew 我猜文件的不同名称(单数与复数素数)是真正的问题
-
@PiotrS。对。这是一个有两个错字的问题!