无法再正确读取文本文件

cannot read the text file properly anymore

本文关键字:读取 取文本 文件      更新时间:2023-10-16

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

88
687
472
671

但是在程序完成后,输出为 0 1073741824 0 1073741824。 我不知道发生了什么,我唯一一次对 bash 进行一些更改是 ulimit -s 无限。知道吗?

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 个垃圾值并将它们转储到屏幕上。