文章目录
Input and Type
input输入操作符>>
对类型敏感,也就是说它根据待输入的变量的类型来输入。比如
int main
{
string name; int age;
cin>>name;
cin>>age;
}
如果,键入Kathy 18
,>>
操作符会将Kathy
读入name,18
读入age。为什么不会将整个输入Kathy 18
读入name呢?这是因为对字符串的读取终止于空格,比如单个空格、换行或者Tab字符。此外,空格会被>>
忽略掉,如果你在一个输入的数字之前键入很多空格,>>
会忽略那些空格只读入数字。
如果不按照类型来输入会怎么样呢?比如我们键入18 Kathy
,18
会被作为一连串的字符读入name
,此外,由于Kathy
不是整数,将不会被读取到,age的值是一个无意义的随机数(程序执行时age所在的内存单元存储的值),这是因为,我们没有对age进行初始化赋值,也没有成功地给age读取一个值。对于由于输入格式导致的失败更详细的介绍在下一节。
修改上述程序
int main()
{
string name; int age;
cin >> name >> age;
cout << "Hello, " << name <<"(age:" << age << ")" << endl;
}
注意,我们可以在一条输入命令中输入多个变量的值,同样,我们也可以在一条输出命令中输出多个变量的值。
一个string
用>>
读取输入数据是默认把空格作为终止标志,也就是说只能读入单个单词。但是如果我们想要读入多个单词怎么办呢?比如我们想要读入完整的姓名比如Kathy Chen
,最简单