C++语言入门_01
蓝桥云课学习记录打卡 2021/11/18
前言
本次实验共有两个内容,其一是简要介绍 C++ 语言的产生及其特点,其二是介绍 C++ 语言的基础支撑知识。
知识点
C++ 语言的概述
扩展名和注释符
命名空间
标准 I/O 库
一、C++ 的扩展名和注释符
扩展名
C++ 源文件的扩展名与运行的具体编译器有关,一般有 .cc、.cxx、.cpp 和 .cp。与源文件相关的头文件扩展名一般是 .h。课程实验环境中的源文件扩展名一般为 .cpp,与之相关的头文件扩展名一般为 .h。
注释符
与其他语言类似,C++ 也有为代码提供辅助信息的注释符。
单行注释://注释内容
int x;//定义 x 的数据类型为 int
块注释:/_ 注释内容 _/
if(x>y)return x;
else return y;
/* 如果 x 大于 y 则返回 x
否则返回 y */
注释符可以放置在代码的任何位置,且不参与代码运行。
二、命名空间
命名空间里面包含了逻辑结构上相互关联的一组类、函数、模板等。命名空间像是一个容器,把某些在逻辑结构上相关的 “ 对象 ” 放在一起并与外界区分。特别的,命名空间里的变量名或类名可以和命名空间外的变量名或类名重名。
使用命名空间的时候,我们可以用 花括号 把声明块括起来,再以关键字 namespace 开头并命名,其基本格式如下:
代码如下(示例):
namespace 命名空间的名字
{
声明块
}
其中声明块中可以包含变量、类、函数等。例如:
namespace S
{
int x;
void FunA()
{
...
}
}
在命名空间外使用命名空间内的成员:命名空间的名字加上作用域运算符 :: 。
参考上例 namespace S,若访问 x,可写成 S::x;访问 FunA() 则为 S::FunA()。
命名空间的嵌套, 具有分层屏蔽的作用。例如:
namespace S1
{
namespace S2
{
int x;
void FunA()
{
...
}
}
}
若要访问 x,则可写为 S1::S2::x,同理,访问 FunA() 则可写为 S1::S2::FunA()。
using 声明:若命名空间内的某个成员使用了 using 声明,那么这个成员在程序的后续使用中,可直接使用成员名,无需添加限定修饰名。使用 using 声明: 以关键字 using 开头后跟命名空间内的成员名。参考上例嵌套的命名空间:namespace S2 中 int x 的 using 声明为:using S1::S2::x;
注意 :using namespace 后不能加类名或变量名。同上,若 namespace S2 中 int x 的 using 声明写为 using namespace S1::S2::x 便是错误的。
using 指示符可以一次性地使命名空间内的全体成员被直接使用。
using 指示符的使用:以关键字 using namespace 开头后跟命名空间名字。特别的,std 命名空间声明和定义了标准 C++ 库中的所有组件,使用 using namespace std; 则可使用标准 C++ 库中的所有成员。
三、C++ 语言的输入与输出
C++ 标准 I/O 库包含 iostream、fstream 和 sstringstream。iostream、fstream 比较常用,一般操作于输入和输出,相较于前两者来说 sstringstream 的出现频率就低了许多,一般操作于数据的格式化。
1.标准输出流对象 cout
预定义的插入符 “ << ” 作用在流类对象 cout 上可实现最基本的屏幕输出,其格式为:
代码如下(示例):
cout << 表达式1 << 表达式2...
在输出语句中,若串联多个插入符,则可输出多个数据项。例如:
cout << a << b << c;
则依次输出 a,b,c 三个数据项的值。
若插入符后面是复杂的表达式,则系统自动计算其表达式的值并传给插入符。例如:
cout << "a+b=" << a+b
依次输出字符串 “ a+b= ” 以及 a+b 的计算结果。
2.标准输入流对象cin
预定义的提取符 “ >> ” 作用在流类对象 cin 上可实现对键盘输入的提取操作,其格式为:
cin >> 表达式1 >> 表达式2...
其中表达式通常用于存放输入值的变量。例如:
int a,b;
cin >> a >> b;
即编译执行后,输入 a 和 b 的值,a 和 b 之间使用空格分隔。如输入:1 2,则给 a 赋值为 1,b 赋值为 2。
3.简单的 I/O 格式控制
一般情况下,使用 cin 和 cout 进行数据的输入和输出时,会自动按照默认的格式进行处理。如若需要设定特殊的格式,可利用 C++ I/O 流类库提供的操纵符进行调整。这些操纵符可直接嵌入到输入输出语句中实现格式控制。常用的 I/O 流类库操纵符:
操纵符名 | 含义 |
---|---|
dec | 数值数据采用十进制表示 |
hex | 数值数据采用十六进制表示 |
hex | 数值数据采用十六进制表示 |
oct | 数值数据采用八进制表示 |
ws | 提取空白符 |
endl | 插入换行符,并刷新流 |
ends | 插入空字符 |
setsprecision ( int ) | 设置浮点数的小数位数,包括小数点 |
setw ( int ) | 设置域宽 |
蓝桥云课实验环境使用方式
提示:编写代码,使屏幕输出 “Hello shiyanlou”。
步骤
在实验楼环境 WebIDE 中新建一个文档,命名为 shiyanlou.cpp。
在代码文件编辑区输入实验代码:
#include <iostream> //iostream 表示对流运行读写操作。
using namespace std; //使用标准 C++ 库中的所有成员。
int main()
{
cout << "Hello shiyanlou!" << endl; //cout 为标准输出流对象;endl 表示插入换行符,并刷新流。
return 0;
}
完成代码编写并成功保存后,在 Linux 终端输入:
g++ shiyanlou.cpp -o shiyanlou
GCC 和 G++ 是由 GNU 开发的编程语言编译器,其中 GCC 用来编译 C 语言程序;G++ 用来编译 C++ 语言程序。
g++ -o 的功能:生成可执行文件,其基本格式为:
g++ 需生成可执行文件的源文件名 -o 可执行文件名称
所以输入 g++ shiyanlou.cpp -o shiyanlou 命令且回车后,我们可以在代码文件浏览区看到生成的可执行文件 shiyanlou。
接着我们继续在 Linux 终端访问可执行文件:
./shiyanlou
最终输出 “ Hello shiyanlou ”
输出字符串训练
挑战准备
在实验环境下,新建 outstring.cpp 文件。
挑战
请编写一个 C++ 程序,其功能为:
在屏幕上输出字符串 “I love shiyanlou”。
目标
在屏幕上输出字符串。
提示
预定义的插入符 “ << ” 作用在流类对象 cout 上可实现最基本的屏幕输出。
代码如下:
#include <iostream>
using namespace std;
int main()
{
cout <<"I love shiyanlou"<< endl;
return 0;
}