一开始写的代码是这个样子的:
int x=0;
char ch;
if( (ch=cin.get()) == 'y' || (ch=cin.get()) == 'Y'){
x=1;
}
cout << x;
发现输入Y时结果是0;
了解到第一个cin.get()读了Y并进行判断,此时ch=‘Y’,第二个cin.get()会重新给ch一个值,此时ch=’/n’,所以出现错误。修改后如下:
int x=0;
char ch;
ch=cin.get();
if( ch== 'y' || ch == 'Y'){
x=1;
}
cout << x;
1、cin
遇到空格或者回车后结束,可以用noskipws来控制。
2、cin.get()
可接收到空格,但是遇到回车结束。
以下两种用法都可以:
ch=cin.get();
cin.get(ch);