第2单元 C++程序基础
注:本部分内容主要来自中国大学MOOC北京邮电大学崔毅东的 《C++程序设计》课程。
单元导学
1. C++的源代码和编码规范
介绍C++头文件、源文件的作用及扩展名;
介绍为何需要编码规范,以及两种编码规范(Google和Geosoft规范)。
2. 一个最简单的C++程序,Aloha World
通过该例子,了解C++程序的基本结构。
3. C++的名字空间
名字空间(namespace)用于避免名字冲突。并且介绍了用法。
4. C++程序的编译流程
理解编译流程,对今后程序差错有很大作用。
5. 处理C++程序中的错误
介绍常见的错误类型,并且让你实际动手试试。
6. 标准输入输出
怎么样在C++程序中读取信息以及把信息显示到屏幕上。
2.2 Aloha World代码示例
2.1 Aloha World程序
功能描述:在屏幕上输出“Aloha World”。
源文件main.cpp
#include<iostream>//输入输出的头文件
int main() {
//输出"Aloha, World!"
std::cout << "Aloha, World!" << std::endl;
//假如显示窗口闪退,保持显示窗口
std::cin.get();//一直等待输入
return 0;
}
知识点及感想:
- 头文件扩展名包括“.h”、“.hpp”、“hxx”,源文件扩展名包括“.c”、“.cpp”、“cxx”。
- C语言中的头文件需要标出扩展名(.h),但是现在C++不需要。
- 在C++中将 “<<” 定义为流输出运算符,称为 运算符重载 ,但是在C语言和Java语言中没有这种现象。
- “std::” 是 名字空间(namespace) ,用于表示标识符的作用域。假如没有名字空间,会使得多个相同的指令产生混乱,所以C++中有名字空间。如果有名字空间但是不声明,将不会正确调用到相应的标识符。最好对于标识符不偷懒,但以下也给出偷懒的办法:
![](https://i-blog.csdnimg.cn/blog_migrate/ff6cb740268c4d72ac414ed7a50c3690.png)
-
名字空间的作用是隔离标识符的作用范围。但是2022版本的VS也可以识别出名字空间里面的主函数,即“入口点”。
-
标准规范:
- 不允许使用“制表”、“分页”等特殊字符,应该都在IDE中转换成空格。
- 函数必须将返回值明确列出。
2.6 C++的输入输出
-
输入输出的分类
根据源目分为:标准IO(Standard I/O)、文件IO(File I/O)、字符串IO(String I/O)、网络IO(Network I/O)。 -
C和Java的输入输出
输入语法 | 输出语法 | |
---|---|---|
C | scanf() fgetchar()/gets() | printf() putchar()/puts() |
Java | Scanner类 …… | System.out.println()/print()/printf()…… …… |
C++ | 标准输入流cin | 标准输出流cout |
C++使用一种叫“流”的概念对屏幕、键盘或者文件进行输入输出操作。
流(Stream) | 操作符(Operators) | 函数(Functions) |
---|---|---|
cin | 流提取运算符 extraction operator | cin.get() 从流中读并取走一个字符 cin.getline() 从流中读取字符,直至行尾或指定的分隔符 cin.ignore() 从流中读取并含弃指定数量的字符 |
cout | 流插入运算符 insertion operator | cout.put() 将字符写到流中(无格式) cout.flush() 将流中缓存内容全部输出 |
cout 有缓冲区,在特定的时候信息才会输出到屏幕上。使用 flush 可以 强制 cout 将信息输出到屏幕上。
下面给出程序代码示例:
源代码main.cpp
//功能描述:实现键盘输入到程序输出内容。
#include<iostream>
using std::cin;
using std::cout;
using std::endl;
int main() {
int a;
float b;
cout << "请输入一个整数:";
cin >> a;
cout << "你输入的是:" << a << endl;
cout << "请再输入一个浮点数:";
cin >> b;
cout << "你又输入了:" << b << endl;
cout << "你要不再试试同时输入(先整数再小数):";
cin >> a >> b;
cout << "也行,a=" << a << ",b=" << b << endl;
}
运行结果:
请输入一个整数:3
你输入的是:3
请再输入一个浮点数:3.3
你又输入了:3.3
你要不再试试同时输入(先整数再小数):9 3.3
也行,a=9,b=3.3