gpt4 book ai didi

c++ - IO 文件代码不一致

转载 作者:太空宇宙 更新时间:2023-11-04 12:11:18 25 4
gpt4 key购买 nike

我函数的输出不一致。该函数假设打开一个文件,然后从文件中提取整数,然后将整数设置到一个数组中。如果有 20 个整数,我在从文件提取到数组时遇到问题。当我尝试这样做时,我看到“数组超出范围”。

如果文件名不正确或文件在其上下文中没有整数,该函数还假设会提示。这两个似乎都正常工作。

如有任何帮助,我们将不胜感激。

bool loadArrayFromFile(int a[], int &n)
{
ifstream infile;
string fileName;
cout<<"Enter the name of file: ";
cin>>fileName;
infile.open(fileName.c_str());
if(!infile)
{
cout<<"File didn't open"<<endl; //if file name is incorrect or could not be opened
return false;
}
int count=0; //count values in file
int elem=0; //keeps track of elements
infile>>a[elem];
while(infile.good())
{
elem++;
count++;
infile>>a[elem];
}
if(!infile.eof())
{
cout<<"Wrong datatype in file"<<endl;
infile.clear();
infile.close();
return false;
}
n=count;
infile.close();
return true;
}

最佳答案

您的问题描述听起来好像您提供的数组元素太少。您可能需要考虑使用 std::vector<int>并将元素读入其中,例如

std::vector<int> array;
array.assign(std::istream_iterator<int>(infile), std::istream_iterator<int>());

关于c++ - IO 文件代码不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9676580/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com