如下代碼:
#include <iostream>
using namespace std;
int main(int argc, const char * argv[]) {
char ch;
int count = 0;
cout << "Please Enter The Char String : " << endl;
cin >> ch;
while (ch != 'q') {
cout << ch;
++ count;
cin >> ch;
}
cout << endl << "The number of 'ch' is : " << count << endl;
return 0;
}
說明
1.使用原始的cin語句進(jìn)行輸入黍檩,通過哨兵字符,即‘q’來作為輸入停止的標(biāo)記涮毫;
2.用戶發(fā)送給cin的輸入會被緩沖翘魄,這也是在哨兵字符之后可以接著輸入字符的原因。只有按下Enter之后,輸入的字符才會被發(fā)送給程序谋币,程序這時(shí)才開始處理輸入仗扬。
3.++count 和 count++的區(qū)別就是,前綴式會先改變自身的值再執(zhí)行程序蕾额;而后綴式則是先執(zhí)行程序再改變自身的值
4.count用來計(jì)算非哨兵字符之前的字符輸入數(shù)早芭,在初始化的時(shí)候被賦值為0,如果輸入的第一個字符就是哨兵字符诅蝶,不執(zhí)行while循環(huán)處理語句退个,此時(shí)count的值依然為0;如果輸入的第一個字符不是哨兵字符调炬,則會執(zhí)行while語句:輸出并顯示之前的字符--->改變count的值--->執(zhí)行的下一次輸入语盈。所以說,count的值是準(zhǔn)確的缰泡。