【发布时间】:2015-12-22 22:51:51
【问题描述】:
这是我的代码
int main()
{
int total = 0;
int count = 0;
std::cin >> total;
int arr[4] = {0,0,0,0};
while(count < total)
{
std::cin>>arr[0]>>arr[1]>>arr[2]>>arr[3];
count++;
std::cout<<count<<std::endl;
}
return 0;
}
所以输入的第一行告诉我之后需要阅读多少行......每行有4个数字,用空格分隔。每当行数超过 80(例如 100)时,while 循环就会卡住。我不知道是什么导致了这个问题,我尝试了一些类似 cin.clear() 的方法,但它们只是没有用....
编辑: std::cin 在 10 20 210 10 等格式的 80 行输入后停止读取
带有 LLVM 的 Xcode 无法正常工作...但是使用终端的 g++ 可以工作....http://melpon.org/wandbox/permlink/UXAMgM4ldn2K2NgU 这是在我的终端上使用 g++ 但不是我的 xcode 的代码...
【问题讨论】:
-
您对问题的描述非常模糊。 “卡住”是什么意思?你是如何测试的?
-
输入的第 80 行是什么样的?它是否包含不是整数的东西?
-
@JoachimPileborg 它们都是整数,例如 10 20 30 40
-
无法复制。它在读取 128 行后成功停止。 melpon.org/wandbox/permlink/JBcm4eyDXv2bwMQz
-
使用调试器查看每个循环迭代中每个变量的状态。 95% 的人在采取此类行动后会自己得到答案。
标签: c++