gpt4 book ai didi

c++ - 在 C++ 中将一个字符串值赋给一个整型变量会发生什么?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:27:33 24 4
gpt4 key购买 nike

我刚开始学习 C++(请原谅我的菜鸟问题)。这是我作为练习编写的一些代码:

#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;
}

现在,当两个输入都是数字时,这段代码工作得很好。但是当我为第一个输入输入一个字符串时(只是为了看看会发生什么)程序不会要求我输入第二个输入并且 cout 结果是 foo plus bar is 0。我想知道的是,当我将一个字符串分配给一个整型变量时,为什么程序会跳过我的第二个 cin。感谢您的帮助。

最佳答案

一个流有一个内部状态。如果输入失败,状态将设置为指示错误,并且所有进一步的输入都将失败,除非该状态被清除。

在您的情况下,您应该将 foo 和 bar 初始化为零。

测试流状态:

if( ! (cin >> foo)) {
// Error
}

与酒吧相同

如果您已经解决了输入失败问题,您可以使用 cin.clear() 清除错误状态。

关于c++ - 在 C++ 中将一个字符串值赋给一个整型变量会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21646500/

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