gpt4 book ai didi

c++ - 无法再正确读取文本文件

转载 作者:行者123 更新时间:2023-11-28 06:33:45 25 4
gpt4 key购买 nike

好吧,基本上这是我的程序,它读取一个文本文件并将其放入一个数组中,最后我打印出该数组中的所有内容。该程序运行良好,并在几天内产生了正确的结果。但是,它今天才停止工作。例如文本文件是

88
687
472
671

但是程序完成后,输出是 0 1073741824 0 1073741824。我不知道发生了什么,唯一一次我对 bash 做了一些更改是 ulimit -s unlimited。有什么想法吗?

int main(int argc, char *argv[])
{
ifstream file(argv[1]);
int placeholder;
int size = pow(2,atoi(argv[2]));
int array[size];
int index = 0;
while (file >> placeholder)
{
array[index]=placeholder;
index++;
}

for(int i = 0; i<size; i++)
{
cout<<array[i]<<endl;
}
return 0;
}

最佳答案

您确定程序可以读取您的文本文件吗?如果输入文件不存在,程序仍会尝试从不包含任何元素的 array 打印 argv[2]**2 条目!该程序最终转储垃圾值。

我也不确定你为什么调用 pow - 为什么不从 argv[2] 中获取元素的数量?

此外,当您可以使用 C++ stringstream 进行转换时,您使用了一些 c 函数 (atoi)。

当我使用您提供的输入运行您的代码时,例如:./a.out file.txt 2,它会按预期打印 4 个数字。当我这样做时:./a.out does_not_exist.txt 2,它会打印 4 个垃圾值并将它们转储到屏幕上。

关于c++ - 无法再正确读取文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27111790/

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