在c++;? 我刚刚开始学习C++(所以请原谅我的NoBISH查询)。以下是我作为练习编写的一些代码: #include<iostream> int main() { using namespace std; int foo; cin >> foo; int bar; cin >> bar; cout << "foo plus bar is " << foo+bar<< endl; return 0; } #包括 int main() { 使用名称空间std; int foo; 中国>>富; int-bar; cin>>酒吧; cout
一个流有一个内部状态。如果一个输入失败,该状态被设置为指示错误,并且所有进一步的输入都将失败,除非该状态被清除 在您的情况下,应该用零初始化foo和bar 测试流状态:在c++;? 我刚刚开始学习C++(所以请原谅我的NoBISH查询)。以下是我作为练习编写的一些代码: #include<iostream> int main() { using namespace std; int foo; cin >> foo; int bar; cin >> bar; cout << "foo plus bar is " << foo+bar<< endl; return 0; } #包括 int main() { 使用名称空间std; int foo; 中国>>富; int-bar; cin>>酒吧; cout,c++,variables,C++,Variables,一个流有一个内部状态。如果一个输入失败,该状态被设置为指示错误,并且所有进一步的输入都将失败,除非该状态被清除 在您的情况下,应该用零初始化foo和bar 测试流状态: if( ! (cin >> foo)) { // Error } 酒吧也一样 如果您已解决输入故障,您可以使用cin.clear()清除错误状态。您的cin将永远不会被“忽略”。在这种情况下,您应该思考“我的cin在做什么?为什么?”仔细阅读C++文档的文档,我现在所拥有的是Bjarne Stroustru
if( ! (cin >> foo)) {
// Error
}
酒吧也一样
如果您已解决输入故障,您可以使用
cin.clear()
清除错误状态。您的cin
将永远不会被“忽略”。在这种情况下,您应该思考“我的cin
在做什么?为什么?”仔细阅读C++文档的文档,我现在所拥有的是Bjarne Stroustrup的“C++编程语言”。你是指文档吗?比如@ BLT64:没有C++的集中。这本书是一个好的开始,但是对于你想要的,有TH支持的参考书。e标准。@leemes:你指的是草稿,这是一个很好的来源。因此,即使我尝试将字符串分配给foo和bar,cin
将无法通过测试,foo和bar将保持为0?@Bolt64字符串仍在等待提取。错误状态不会自动消失。