c++中通过cin将字符串传给int类型回怎么样?

c++中通过cin将字符串传给int类型回怎么样?

问题描述:

我首先定义一个int类型的变量a,通过cin传入一个字符串企图赋值给这个变量a,我知道a会被赋值为0,但下面的这段代码为什么会一直无限循环呢?

#include<iostream>
using namespace std;

int main()
{
    int a;
    while (true)
    {
        cout << "请输入一个数字" << endl;
        cin >> a;
        cout << "您输入的数字是:" << a << endl;
    }
}

输出的结果是:

img

while (true)一直为真,你没有跳出循环的语句
改成这样就行了:

#include<iostream>
using namespace std;
int main()
{
    int a;
    while (a)
    {
        cout << "请输入一个数字" << endl;
        cin >> a;
        cout << "您输入的数字是:" << a << endl;
    }
}


img

因为你给你的int输了一个不是数值类型的字母。

你的while()条件永远是真,怎么会退出循环呢