C++ primer plus 第5章 循环和关系表达式
来源:互联网 发布:return of the mac 编辑:程序博客网 时间:2024/05/19 20:42
1. 用strcmp()测试字符串是否相等
- 如果str1和str2相等,则下列表达式为true
strcmp(str1, str2) == 0
- 如果str1和str2不相等,则下列表达式为true
strcmp(str1, str2) != 0
strcmp(str1, str2)
2. 循环文本输入
2.1 使用原始cin进行输入
int main()
{
char ch;
int count = 0;
cin >> ch;
while(ch != '#')
{
cout << ch;
count++;
cin>>ch;
}
cout << count;
system("pause");
}
cin将忽略空格和换行符;发送给cin的输入被缓冲,只有在用户按下enter键后,输入的内容才会发送给程序
2.2 使用cin.get(char)
cin.get(ch)读取输入中的下一个字符,包括空格、制表符、换行符,解决了2.1中cin忽略空格的问题
int main()
{
char ch;
int count = 0;
cin.get(ch);
while(ch != '#')
{
cout << ch;
count++;
cin.get(ch);
}
cout << count;
system("pause");
}
2.3 EOF
检测到文件尾EOF后,cin将eofbit和failbit都设置为1,cin.eof()返回true。如果eof或failbit设置为1,则cin.fail()返回true
int main()
{
char ch;
int count = 0;
cin.get(ch);
while(cin.fail() == false)
{
cout << ch;
count++;
cin.get(ch);
}
cout << count;
system("pause");
}
DOS下以ctrl+Z,Enter结束2.4 常见的做法
cin.get(ch)返回一个cin对象,cin出现在需要bool值的地方时,istream类提供了将istream对象转换为bool值得函数,因此可简化为
int main()
{
char ch;
int count = 0;
while(cin.get(ch))
{
cout << ch; // 或cout.put(ch);
count++;
}
cout << count;
system("pause");
}
cin.get()返回输入中的下一个字符(将字符编码作为int值返回)而不是cin对象,ch = cin.get()
2.5 EOF是int类型,所以与EOF做比较需要定义ch为int型,在输出时有时需要强制转换成char
int main()
{
int ch;
int count = 0;
while((ch = cin.get()) != EOF)
{
cout.put((char)ch);
count++;
}
cout << count;
system("pause");
}
- C++ primer plus 第5章 循环和关系表达式
- 【读书笔记:C++ primer plus 第六版 中文版】第5章 循环和关系表达式
- C++ Primer Plus 第五章 循环和关系表达式
- [c++primeplus6th]-第5章.循环和关系表达式
- 【C++】第5章 循环和关系表达式 知识总结
- C primer plus第5章(运算符、表达式和语句)习题
- C++ Primer Plus学习:第五章 循环和关系表达式(1)
- C++ Primer Plus学习:第五章 循环和关系表达式(2)
- C++ Primer Plus学习:第五章 循环和关系表达式(3)
- 《C++ Primer Plus(第六版)》(6)(第五章 循环和关系表达式 笔记)
- 《C++ Primer Plus(第六版)》(7)(第五章 循环和关系表达式 答案)
- C++ Primer Plus 课后编程练习——第五章循环和关系表达式
- 第5章 循环和关系表达式
- c primer plus第6章总结:循环
- C++ Primer Plus(第六版)—— 第五章 循环和关系表达式 笔记和答案
- c primer plus第5章总结:运算符、表达式、语句
- C Primer Plus 第五章:运算符、表达式和语句
- C primer plus 5 ch5 运算符、表达式和语句
- 相关驱动开发工具(系统自带测试驱动工具使用 学习学习)
- HTML5 Canvas
- 如何把double类型四舍五入到小数后两位
- 电视信号中的一些基本概念 (转自驱动之家)
- BasicDataSource
- C++ primer plus 第5章 循环和关系表达式
- android应用安全——(数据抓包)跟踪监控android数据包
- ERROR 010096: There is no Spatial Analyst license currently available or enabled.
- js的数组操作 splice
- C++ primer plus 第7章 函数——C++的编程模块
- Jacobi迭代和Gauss迭代 c语言实现
- C++ primer plus 第8章 函数探幽
- 多数据源切换
- HTML页面跳转方法及代码