gpt4 book ai didi

c++ - 使用 .txt 文件中的数据填充数组,但将不在文本文件中的数字添加到数组

转载 作者:行者123 更新时间:2023-11-28 02:16:51 24 4
gpt4 key购买 nike

我正在尝试用文本文件中的数字填充一个数组。除了文件中没有的数字被添加到数组外,一切都很好。无论我使用什么输入文件,我用来显示数组中数字的 for 循环都会返回 2.122e-314 或另一个极小的数字(取决于输入文件)作为数组的最后一个元素。我的 ifstreamwhile(inFile >> list[i]) 或其他内容是否有错误?

 const int MAXSIZE = 20;     

void get_data(ifstream &inFile, int &amount, double list[]){
char filename[256];
cin >> filename;
inFile.open(filename);
if(inFile.fail()){
cout << "The file failed to open.\n";
exit(1);
}
inFile >> amount; // gets the number of sales reports in the file
cout << amount << " sales reports in the file." << endl;
if(amount > MAXSIZE){
cout << "There are too many different stores in the file.\n"
<< "Must be less than or equal to 20.\n";
}
else{
double a;
int i=0;
while(inFile >> a){
list[i] = a;
i++;
}
for(int x = 0; x <= amount; x++ ){
cout << list[x] << endl;
}
}
inFile.close();
}

这是我的一个测试文件中的数据:

10
62458 81598 98745 53460 35678
89920 78960 124569 43550 45679

这是我从输出数组元素的 for 循环中获得的输出示例:

62458
81598
98745
53460
35678
89920
78960
124569
43550
45679
2.122e-314

最佳答案

你在最后一个循环中循环得太远了

 for(int x = 0; x <= amount; x++ )
cout << list[x] << endl;

读取你写入的最后一个元素。只有 amount 您添加的项目。改为

 for(int x = 0; x < amount; x++ )

确保您只打印您实际写入值的索引处的值。从您的输出中可以清楚地看出,您的循环打印了 11 个值,而实际上您只插入了 10 个值。

关于c++ - 使用 .txt 文件中的数据填充数组,但将不在文本文件中的数字添加到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33792842/

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