如果用户不小心输入了错误数据类型的数据,cin如何工作?

问题描述 投票:0回答:1

我是C ++的新手,我正在尝试cin的功能和局限性

我想知道如果用户提供的数据类型不正确,cin将如何进行输入。所以我检查了stackoverflow并得到了这个

stackoverflow-answer

所以我尝试了它

#include <iostream>

int main()
{
    std::cout << "Enter 4 numbers: " <<
    std::endl;
    int v1 = 0, v3 = 0;
    float v2 = 0, v4 = 0;
    std::cin >> v1 >> v2 >> v3 >> v4;
    std::cout << v1 << " " << v2 << " " 
    << v3 << " " << v4 << std::endl;    
    return 0;
}
Enter 4 numbers:
3.14 2.718
3 0.14 2 0.718

它按预期工作。但是当我尝试]]

#include <iostream>

int main()
{
    std::cout << "Enter 3 numbers: " <<
    std::endl;
    int v1 = 0, v2 = 0;
    float v3 = 0;
    std::cin >> v1 >> v2 >> v3;
    std::cout << v1 << " " << v2 << " " 
    << v3 << std::endl; 
    return 0;
}
Enter 3 numbers:
3.14
3 0 0

我期待3 0 0.14,因为3将与v1一样是int0.14将在缓冲区中,因此当遇到第二个>>时,会将0分配给v2和第三个>> ]将0.14分配给v3,因为v3是类型float

请说明该想法的工作方式。

我在联想ideapad s340上使用了g ++ mingw 8.2.0编译器

谢谢!

我是C ++的新手,我正在尝试cin的功能和局限性,我想知道如果用户使用不正确的数据类型输入数据,cin将如何接受输入。所以我检查了stackoverflow并得到了...

c++ user-input cin
1个回答
0
投票

输入:3.14

© www.soinside.com 2019 - 2024. All rights reserved.