gpt4 book ai didi

c++ - 使用 cin 读取大量输入时程序卡住

转载 作者:行者123 更新时间:2023-11-28 04:51:29 25 4
gpt4 key购买 nike

我在使用 cin 读取程序中的输入时遇到问题.输入看起来像这样:

5 2
10 17 17 17 37

其中 5 是项目数,2 是分隔线数(与此问题无关)。两行都以行尾字符结尾。

问题是当项目的数量变得大于大约 500 并且数字也变得更大(而不是像 50356 这样的 17)时,cin在读取大量输入时在某处停止(它只是卡住整个程序)。奇怪的是,它在小输入上运行良好(我的程序完全符合我的预期),但在大输入上却不行。我还想以 > 5000 的输入大小运行它。我不知道为什么它不起作用。也许有缓冲区问题,我需要冲洗。解决方案可能非常简单。

void fill()
{
cin >> numberOfItems;
cin >> dividers;

vector<unsigned long int> roundedSum;
roundedSum.resize(numberOfItems);
unRoundedSum.resize(numberOfItems);
currentSum.resize(numberOfItems);
updatedSum.resize(numberOfItems);

unsigned long int tempValue;
cin >> tempValue;

roundedSum[0] = roundValue(tempValue);
unRoundedSum[0] = tempValue;

for (unsigned long int i = 1; i < numberOfItems; ++i){
cin >> tempValue;
tempValue += unRoundedSum[i - 1];
unRoundedSum[i] = tempValue;
roundedSum[i] = roundValue(unRoundedSum[i]);
}
currentSum = roundedSum;
updatedSum = roundedSum;
}

编辑:问题已解决问题不在于 cin功能,但我给程序输入的方式。将大量输入粘贴到剪贴板上,然后在运行程序时将其作为参数放在终端中,这似乎是个问题。当以 ./program < input.in 运行程序时其中 input.in 是包含上述格式的所有输入的文件,然后程序运行正常并且不再卡住。

最佳答案

问题解决了。问题不在于 cin功能,但我给程序输入的方式。将大量输入粘贴到剪贴板上,然后在运行程序时将其作为参数放在终端中,这似乎是个问题。当以 ./program < input.in 运行程序时其中“input.in”是包含上述格式的所有输入的文件,然后程序运行正常并且不再卡住。

关于c++ - 使用 cin 读取大量输入时程序卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48130261/

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