确保Excel文档安全的有效加密策略和方法
1811
2022-05-29
1.最简单的:
如果程序要使用循环来读取来自键盘的文本输入,并且遇到'#'字符时就停止读取输入
//循环使用cin
#include
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()
#include
int main()
{
using namespace std;
char ch;
int count = 0;
cout << "输入字符串;以# 表示退出: \n";
cin.get(ch); //替换 cin >> ch;
while (ch != '#')
{
cout << ch;
++count;
cin.get(ch); //替换 cin >> ch;
}
cout << endl << count << "字节\n";
system("pause");
return 0;
}
输入:my name is hello#world!
此时,空格也被记录下来。
(备注:有的同学会很好奇,cin.get()似乎能够有1个参数,也可以2个参数,这到底怎么使用?这个其实是C++重载特性)
3. 进阶:假如'#'本身就有用,那么岂不是这个截止符 还要换?答案是:不必麻烦!有文件尾条件EOF
使用CTRL+Z
//循环使用cin.get() ,截止符EOF默认
#include
int main()
{
using namespace std;
char ch;
int count = 0;
cout << "输入字符串;以# 表示退出: \n";
cin.get(ch); //替换 cin >> ch;
while (cin.fail() == false ) //替换 while(ch != '#')
{
cout << ch;
++count;
cin.get(ch); //替换 cin >> ch;
}
cout << endl << count << "字节\n";
system("pause");
return 0;
}
备注:51字节,其实包含了最后CTRL+Z这一个。
C++
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。