#include <iostream>
using namespace std;
int main()
{
cout << "Please enter your name and age\n";
string first_name;
int age;
cin >> first_name;
cin >> age;
cout << "Hello, " << first_name << " (age " << age << ")!\n";
}
Run Code Online (Sandbox Code Playgroud)
如果我输入Carlos对age或任何其他字符串,我收到了0.这是如何工作的(为什么)?
不知道为什么这个问题得到了落实/关闭,因为它已经明确说明而且不广泛(从评论来看,很多人都不知道答案)......
无论如何,对于代码:
int age;
cin >> age;
Run Code Online (Sandbox Code Playgroud)
如果输入流不包含任何数字,则流将进入失败状态并age设置为0.输入流中的字符保留在那里; 清除故障状态后,可以通过将来的读操作读取它们.
在cppreferenceoperator>>上总结了行为, 标准中的完整描述有些复杂.
注意:这在C++ 11中有所改变; 报告垃圾输出的评论员要么是在C++ 11之前的模式下运行编译器,要么是有问题的编译器.
| 归档时间: |
|
| 查看次数: |
2405 次 |
| 最近记录: |