一日清晨,艳阳高照,我随意の点开了某谷的一道题,是树状数组模板题,简简单程序,分分钟完成,但一调试,却发现了一个莫名错误:
我明明用了规规矩矩的cin,但是程序运行时却输不进去东西
话不多说,先贴出出问题的代码:
int q, x, y;
for (int i = 0; i < m; i++) {
cin >> q >> x >> y;
if (q == 1) {
update(x, y, n);
}
else {
cout << getsum(y) - getsum(x-1) << endl;
}
}
然而,当数据读到如图所示的时候,就输不下去了。
于是,我上网搜了一下,发现是高级的输入输出流错误或被占用的问题。
自己摸索着写了一个简短的函数,问题就解决了。函数如下:
void recin()
{
cin.sync();
cin.clear();
}
在每个 cin 后面写上一个 recin() 就可以了
The end问题报告就到这里,希望对你们有帮助



