1.最简单的:
如果程序要使用循环来读取来自键盘的文本输入,并且遇到'#'字符时就停止读取输入
//循环使用cin
#include<iostream>
int main()
{
using namespace std;
char ch;
int count = 0;
cout << "输入字符串;以# 表示退出: \n";
cin >> ch;
while (ch!='#')
{
cout << ch;
++count;
cin >> ch;
}
cout << endl << count << "字节\n";
system("pause");
return 0;
}
输入:my name is hello#world!
观察输出结果,发现确实以‘#’为截止符,但是为什么程序在输出时省略了空格呢?原因在于cin,读取char值的时候,与读取其他基本类型一样,cin将忽略空格和换行符,所以空格没被显示,也没被计数。
2. 使用cin.get(char)进行补救
//循环使用cin.get(