我是C ++的新手,我正在尝试cin
的功能和局限性
我想知道如果用户提供的数据类型不正确,cin
将如何进行输入。所以我检查了stackoverflow并得到了这个
所以我尝试了它
#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
一样是int
,0.14
将在缓冲区中,因此当遇到第二个>>
时,会将0
分配给v2
和第三个>>
]将0.14
分配给v3
,因为v3
是类型float
请说明该想法的工作方式。
我在联想ideapad s340上使用了g ++ mingw 8.2.0编译器
谢谢!
我是C ++的新手,我正在尝试cin的功能和局限性,我想知道如果用户使用不正确的数据类型输入数据,cin将如何接受输入。所以我检查了stackoverflow并得到了...
输入:3.14