一開始寫的代碼是這個樣子的:
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);
參考來源