-8 c++ arrays error-handling text file
我是C++编程的初学者我有一个文本文件,其中有100万个素数用空格分隔.我想把它们放在一个int数组primes []中.以下是我写的代码:
int main()
{
ifstream infile;
infile.open("C:/Users/DELL/Desktop/primes1.txt");
//check for error
if(infile.fail()){cerr<<"Error Opening File"<<endl;
exit(1);}
int i=0;
primes = new int[1000001];
while(i != infile.eof()){
infile>>primes[i];
i++;
}
cout<< primes[4] <<endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当我构建并运行时,它会出现以下错误:
"错误:'primes'未在此范围内声明"
这是什么解决方案?
我强烈建议在堆上使用向量而不是数组来防止资源泄漏:
std::vector<int> primes;
int p;
while (infile >> p)
{
primes.push_back(p);
}
Run Code Online (Sandbox Code Playgroud)
C++ 很漂亮,它的库里有很好的东西,允许你以高级,简洁,声明的方式做到这一点:
std::vector<int> primes(std::istream_iterator<int>{infile},
std::istream_iterator<int>{});
Run Code Online (Sandbox Code Playgroud)