int n;
cin>>n;
若此时输入的是一个字母而不是数字,将发生以下情况:
n的值保持不变;
不匹配的输入将被留在输入队列中;
cin对象中的一个错误标记被设置;
对cin方法的调用将返回false;
应当:
1.重置cin以接受新的输入:cin.clear();
2.删除错误输入,提示用户再输入。
假设有如下输入行:38.5 19.2
使用char类型:
char ch;cin>>ch;
输入行中的第一个字符被赋给ch,其字符编码被存储在ch中。
使用int类型:
int n;cin>>n;
在这种情况下,cin将不断读取,直到遇到非数字字符。它将读取3和8,这样句点称为输入队列中的下一个字符。cin通过计算发现,这两个字符对应数值38,因此将38的二进制编码复制到变量n中。
使用double类型:
double x;cin>>x;
在这种情况下,cin将不断读取,直到遇到第一个不属于浮点数的字符。它将读取句点和5,使得空格成为队列中的下一个字符。再把38.5的二进制编码(浮点格式)复制到变量x中。
使用char数组:
char word[50];cin>>word;
在这种情况下,cin将不断读取,直到遇到空白字符。空格将成为输入队列的下一个字符。cin将这四个字符的字符编码存储到word中,并在末尾加上一个空字符。
char word[50];cin.getline(word,50);
在这种情况下,cin将不断读取,直到遇到换行符。所有字符都被存储到数组word中,并在末尾加上一个空字符。换行符被丢弃,输入队列中的下一个字符是下一行中的第一个字符。