如下代码:
#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语句进行输入,通过哨兵字符,即‘q’来作为输入停止的标记;
2.用户发送给cin的输入会被缓冲,这也是在哨兵字符之后可以接着输入字符的原因。只有按下Enter之后,输入的字符才会被发送给程序,程序这时才开始处理输入。
3.++count 和 count++的区别就是,前缀式会先改变自身的值再执行程序;而后缀式则是先执行程序再改变自身的值
4.count用来计算非哨兵字符之前的字符输入数,在初始化的时候被赋值为0,如果输入的第一个字符就是哨兵字符,不执行while循环处理语句,此时count的值依然为0;如果输入的第一个字符不是哨兵字符,则会执行while语句:输出并显示之前的字符--->改变count的值--->执行的下一次输入。所以说,count的值是准确的。