C++ Primer记录_第一章
2022/2/14 1:15:19
本文主要是介绍C++ Primer记录_第一章,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
文章目录
- 第一章 开始
- 1.1 编写一个简单的C++程序
- 1.1.1 编译、运行程序
- 1.2 初识输入输出
- 1.3 注释简介
- 1.4 控制流
- 1.4.1 while 语句
- 1.4.2 for 语句
- 1.4.3 读取数量不定的输入数据
- 1.4.4 if语句
- 1.5 类简介
- 1.5.1 Sales_item类
- 1.5.2 初始成员函数
- 1.6 书店程序
第一章 开始
1.1 编写一个简单的C++程序
- 每个C++程序都包含一个或多个函数,必须保证拥有一个命名为main的主函数。
- 下面函数包含四个部分,返回类型
int
,函数名main
,形参列表()
(允许为空),函数体{return 0}
。
int main() { return 0; }
1.1.1 编译、运行程序
- 下面为个人习惯,不是书上内容。
- C++程序的源文件后缀一般为.cpp。
- 使用具有编译器的IDE(集成开发环境),如Visual Studio。
- 或使用Vscode(Visual Studio Code)轻量的文本编辑器,并配置mingw(Minimalist GNUfor Windows)精简的Windows平台C/C++编译器,与Vscode扩展插件Code Runner、C/C++ Extension Pack。
1.2 初识输入输出
- 头文件
#include <iostream>
告诉编译器需要使用iostream库。 - 命名空间
std
,命名空间可以帮助我们避免不经意的名字定义冲突,以及使用库中相同名字导致的冲突。 - 标准输入对象
cout
、标准输出对象cin
。 - 输出运算符
<<
、输入运算符>>
。 - 向流1写入数据
std::cout<<
,输出流。 - 向流读取数据
std::cin>>
,输入流。 - 输出警告和错误消息
std::cerr
。 - 输出程序运行的一般性消息
std::clog
。 - 操纵符
endl
,相当于结束当前行,并将与设备关联的缓冲区(buffer)中的内容刷到设备中。
#include <iostream> int main() { std::cout << "Enter two numbers:" << std::endl; int v1 = 0, v2 = 0; std::cin >> v1 >> v2; std::cout << "The sum of " << v1 << " and " << v2 << " is " << v1 + v2 << std::endl; return 0; }
Enter two numbers: 2 6 The sum of 2 and 6 is 8
1.3 注释简介
- 单行注释
//
,多行注释/* */
- 注释的所有内容都会被编译器忽略
#include <iostream> /* 简单主函数 读取两个数,求它们的和 */ int main() { //提示用户输入两个数 std::cout << "Enter two numbers:" << std::endl; int v1 = 0, v2 = 0; //保存我们读入的输入数据的变量 std::cin >> v1 >> v2; //读取输入数据 std::cout << "The sum of " << v1 << " and " << v2 << " is " << v1 + v2 << std::endl; return 0; }
1.4 控制流
- 控制流是一种机制,它决定程序下一步应该怎么执行
1.4.1 while 语句
- while语句反复执行一段代码,直至给定条件为假为止
- while循环的循环变量或者表达式必须在while循环的前面设定,在while循环结束之后并没有释放掉。
- while循环适用于循环次数不确定的场合。
#include <iostream> int main() { int sum = 0, val = 0; //只要val的值小于等于10,while循环就会持续执行 while (val <= 10) { sum += val; //将sum+val赋予sum ++val; //将val加1 } std::cout << "Sum of 1 to 10 inclusive is " << sum << std::endl; return 0; }
Sum of 1 to 10 inclusive is 55
1.4.2 for 语句
- for语句反复执行一段代码,直至给定条件为假为止。
- for循环的循环变量可以在for循环的内部设定,在for循环结束之后就释放掉了。
- for循环适用于循环的开始和结束已知,循环次数确定的场合。
#include <iostream> int main() { int sum = 0; //从1加到10 for (int val = 1; val <= 10; ++val) { sum += val; //等价于sum=sum+val } std::cout << "Sum of 1 to 10 inclusive is " << sum << std::endl; return 0; }
Sum of 1 to 10 inclusive is 55
1.4.3 读取数量不定的输入数据
- 输入数while循环会一直执行,直到输入错误为止结束循环,如输入/
#include <iostream> int main() { int sum = 0, value = 0; //读取数据直到遇到文件尾,计算所有读入的值的和 while (std::cin >> value) { sum += value; //等价于sum=sum+value } std::cout << "Sum is:" << sum << std::endl; return 0; }
5 4 3 / Sum is:12
1.4.4 if语句
- if语句用来判定所给定的条件是否满足,根据判定的结果(真或假)决定执行给出的两种操作之一。
#include <iostream> int main() { // currVal是我们正在统计的数;我们将读入的数存入val int currVal = 0, val = 0; //读取第一个数,并确保确实有数据可以处理 if (std::cin >> currVal) { int cnt = 1; //保存我们正在处理的当前值的个数 while (std::cin >> val) //读取剩余的数 { if (val == currVal) //如果值相同 { ++cnt; //将cnt加1 } else //否者,打印前一个值的个数 { std::cout << currVal << " occurs " << cnt << " times " << std::endl; currVal = val; //记住新值 cnt = 1; //重置计数器 } } // while循环在这里结束 //记住打印文件中最后一个值的个数 std::cout << currVal << " occurs " << cnt << " times " << std::endl; } //最外层的if语句在这里结束 return 0; }
42 42 42 42 42 55 42 occurs 5 times 55 62 55 occurs 2 times 100 62 occurs 1 times 100 100 - 100 occurs 3 times
- 如果输入所有值都相等,就不会有输出,一直在累加循环,如果没有重复值,一直会输出计数为1。
- 因为输入的数有变化导致和事先存好的数不同会重置累加,所以输入之前有过的数并不会继续累加,会从1开始
1.5 类简介
- 类名是什么?
- 它是在哪里定义的?
- 它支持什么操作?
1.5.1 Sales_item类
- Sales item类的作用是表示一本书的总销售额、售出册数和平均售价。
- 书上代码不涉及类的内部,我估计内部类需要用到运算符重载的一些操作。
- 企图告诉我们需要设计一个类,然后直接使得类类型通过运算取得想要的值。
- 国际标准书号(International Standard Book Number),简称ISBN
#include <iostream> #include "Sales_item.h" int main() { Sales_item book; //读入ISBN号、售出的册数以及销售价格 std::cin >> book; //写入ISBN号、售出的册数、总销售额和平均价格 std::cout << book << std::endl; return 0; }
0-201-70353-X 4 24.99 0-201-70353-X 4 99.96 24.99
#include <iostream> #include "Sales_item.h" int main() { Sales_item item1, item2; std::cin >> item1 >> item2; //读取一对交易记录 std::cout << item1 + item2 << std::endl; //打印它们的和 return O; }
0-201-78345-X 3 20.00 //输入数据给item1,值分别代表ISON号,售出册数,每本售价 0-201-78345-X 2 25.00 //输入数据给item2 0-201-78345-X 5 110 22 //输出数据,值分别代表ISON号,总售出册数,总销售额,平均售价
1.5.2 初始成员函数
.isbn()
为item
实例对象的成员函数,也被称为方法。.
来表达我们需要名为item实例对象的isbn成员- 调用运算符
()
来调用一个函数,目前为空列表,可以放置实参的列表。
#include <iostream> #include "Sales_item.h" int main() { Sales_item item1, item2; std::cin >> item1 >> item2; //首先检查iteml和item2是否表示相同的书 if (iteml.isbn() == item2.isbn()) { std::cout << iteml + item2 << std::endl; return 0; //表示成功 } else { std::cerr << "Data must refer to same ISBN" << std::endl; return -1; //表示失败 } }
1.6 书店程序
- 这案例举的并不好个人认为
#include <iostream> #include "Sales_item.h" int main() { Sales_item total; //保存下一条交易记录的变量 //读入第一条交易记录,并确保有数据可以处理 if (std::cin >> total) { Sales_item trans; //保存和的变量 //读入并处理剩余交易记录 while (std::cin >> trans) { //如果我们仍然在处理相同的书 if (total.isbn() == trans.isbn()) { total += trans; //更新总销售额 } else { //打印前一本书的结果 std::cout << total << std::endl; total = trans; // total现在表示下一本书的销售额 } } std::cout << total << std::endl; //打印最后一本书的结果 } else { //没有输入!警告读者 std::cerr << "No data?!" << std::endl; return -1; //表示失败 } return 0; }
流是个抽象的概念,是对输入输出设备的抽象,流具有方向性,至于是输入流还是输出流则是一个相对的概念,一般以程序为参考,如果数据的流向是程序至设备,我们成为输出流,反之我们称为输入流。 ↩︎
这篇关于C++ Primer记录_第一章的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-30uniAPP 实现全屏左右滚动滚动的效果-icode9专业技术文章分享
- 2024-06-30如何在本地使用授权或插件-icode9专业技术文章分享
- 2024-06-30伪静态规则配置方法汇总-icode9专业技术文章分享
- 2024-06-29易优CMS安装常见问题汇总-icode9专业技术文章分享
- 2024-06-28易优新手必读安装教程-icode9专业技术文章分享
- 2024-06-28忘记eyoucms后台密码怎么办?-icode9专业技术文章分享
- 2024-06-26终极指南:Scrum中如何设置需求优先级
- 2024-06-26AI大模型企业应用实战(25)-为Langchain Agent添加记忆功能
- 2024-06-26小白家庭 nas 搭建方案-icode9专业技术文章分享
- 2024-06-23AI大模型企业应用实战(14)-langchain的Embedding