《斗破CPP》 第壹章 ---- 初窥CPP

我大概是无聊了,横竖都无法安慰自己,这写《斗破CPP》系列的情绪油然而来,思虑幻想着写完这系列的结果,开心是我,惊喜也是我,我向来是不屑于去写毫无营养的博客,而如今却生成写有营养的系列博客,也罢,大概是《斗破CPP》时代来临了。

目录

序言

头文件的引入

使用std命名空间

在控制台画面上输出与警报

自由书写格式

不可再单词中插入空白字符

不可在字符串字面量中间换行

不可在预处理指令中间换行

扫描二维码关注公众号,回复: 13780511 查看本文章

变量

初始化与赋值

从键盘输入与常量对象

读入字符串(getline)

未完待续


序言

《斗破CPP》系列如其名,并不会像以前讲C那般写出什么printf(“Hello world”\n); 这种对已学过C语言的小伙伴们毫无用处的程序,要讲就要讲极其重要的、新奇的、不易懂的知识点以及程序,希望能给用心阅读的小伙伴带来不小的收获!

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5pa95b6LLg==,size_20,color_FFFFFF,t_70,g_se,x_16

头文件的引入

先来上本系列的第一段代码:

#include <iostream>
 
using namespace std;
 
int main()
{
	cout << "\a第一个C++程序。"<<endl;
}

如上述代码所示:第一行是由 # 开始。#include <iostream> 表明:

嵌入<iostream>的内容,<iostream>中包含了"用来执行在画面输出或从键盘等输入”的库(实现处理的构建组)的相关内容。

除了<iostream>的内容,C++还提供了<string>等,这些被称为头文件。<>中的srring和iosteram是头文件名。另外,嵌入头文件内容的操作称为引入

使用std命名空间

学过CPP的小伙伴都知道,#include 的下一行是using指令。using namespace std; 表示:使用std命名空间。我将在后续的博客中学习命名空间,这里咱只需知道它是在使用C++提供的标准库时所需的“固定语句”即可。

如果我们将using namespace std; 删除的话,就需要把所有的cout变更为std::cout啦,为了不必要的麻烦,我们要养成写实现代码前将固定语句写好的习惯
 

在控制台画面上输出与警报

在main()函数里的一段代码:cout << "\a第一个C++程序。"<<endl;  

cout是连接控制台画面的流,称为标准输出流;而<<表示插入,称为插入符,负责将" "里的内容输入到控制台中。

代码中出现的\a是表示警告的转义字符。在向cout插入警报符后,程序会在视觉上或听觉上进行提示,小伙伴们去试一下就知道啦。至于什么是转义字符,转义字符的表示形式等等我将在接下来的博客中分享给大家。
 

自由书写格式

我们来看下面一段代码:

#include <iostream>
 
using 
namespace std;
 
int main(
){
	cout
 << "\a第一个C++程序。"<<endl;
}

C++采用了可以在自由的位置书写程序的自由格式,而无论有多么自由,也会有一些制约条件的。

不可再单词中插入空白字符

比如int、main。cout、<<、// 等均是单词。在它们中间不可以插入空白字符。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5pa95b6LLg==,size_15,color_FFFFFF,t_70,g_se,x_16

不可在字符串字面量中间换行

cout << "\a第一个
C++程序。"<<endl;         \\这样写是错误的;
 
 
cout << "\a第一个“
                "C++程序。"<<endl;         \\这样写是正确的。

由此可知,中间夹有空白字符的相邻字符串字面量会被视为连在一起的一个字符串字面量。

不可在预处理指令中间换行

如果真的需要在中间换行,要在行末写上反斜杠(\)。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5pa95b6LLg==,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5pa95b6LLg==,size_19,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5pa95b6LLg==,size_20,color_FFFFFF,t_70,g_se,x_16

变量

变量就像存放数值的箱子一样。一旦在箱子里放入数值,只要这个箱子存在,就会一直保存数值。而且,我们可以自由地重写值和去处置。但是,我们在使用变量的时候必须先声明,不然的话就好像在地上摆放了许多箱子,而我们且分不清哪个箱子放的是哪些。所以在使用变量的时候我们必须进行声明。

声明名为x的变量的声明语句如下:

int x;    //int型变量x的声明

  而变量x只可以存放整数值,不可以存放1.2那样带小数的实数值,这就是int型的性质。至于数据类型有哪些,也将在后面分享给小伙伴们。

初始化与赋值

(1)初始化:在创建变量时赋值。

(2)赋值:在创建变量后赋值。

且看下面示例:

int x=66;     (1)
 
int x;
x=66;         (2)

初始化还有其他形式,我们先涉猎一下:

int x(66);
int x{66};
int x={63};

接下来,请思考下面的表达式,其中的变量a和b均为int型。

a=b=5

上面这样赋值显然是可以的,而我们再来看看下面的表达式:

int a=b=5;

我们可以在编译器上尝试一下,这是错误的。所以我们要谨慎使用赋值与初始化

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5pa95b6LLg==,size_20,color_FFFFFF,t_70,g_se,x_16

从键盘输入与常量对象

#include <iostream>
 
using namespace std;
 
int main()
{
	double r;				
 
	cout << "半径:";		
	cin >> r;				
 
	cout << "周长是" << 2 * 3.14 * r <<endl;
	cout << "面积是" << 3.14 * r * r <<endl;		
}

有输出的话那么就肯定有输入,输出是cout,输入则是cin。我将在下面一个程序中带入cin的使用方法。

cin是与键盘结合的标准输入流,对cin使用的>>是从输入流去除字符的提取符。

而3.14这个带小数部分的常量称为浮点数字面量。在这个小程序中只出现了两次3.14,而在一个大程序中可能会出现几百个3.14。使用编译器的替换功能,我们可以很容易地将3.14改为3.1415。但是,我们必须将几百个3.14找出并修改,这会极大地浪费我们的时间。

在这样的情况下,常量对象就可以发挥作用。且看下面代码:

#include <iostream>
 
using namespace std;
 
int main()
{
	const double PI = 3.1416;	
	double r;					
 
	cout << "半径:";			    
	cin >> r;					
 
	cout << "周长是" << 2 * PI * r << endl;		
	cout << "面积是" << PI * r * r << endl;		
}

在声明变量PI时添加const,并初始化为3.1415,变量PI即可成为常量对象。常量对象的值不可修改。我们将在后面的内容中讨论const。在该程序中使用常量对象的好处有:(1)在一个地方集中管理值;(2)使程序易读。

常量对象必须在声明时被初始化,且看下图:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5pa95b6LLg==,size_17,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5pa95b6LLg==,size_20,color_FFFFFF,t_70,g_se,x_16

const是一个用来指定对象类型属性的cv限定符。除了const,cv限定符还有volatile。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5pa95b6LLg==,size_20,color_FFFFFF,t_70,g_se,x_16

读入字符串(getline)

#include <string>
#include <iostream>
 
using namespace std;
 
int main()
{
	string name;	
 
	cout << "姓名:";		
	cin >> name;				
 
	cout << "你好," << name << endl;		

我们可以尝试着对控制台输入:斗破苍穹,控制台就会显示出斗破苍穹;而如果我们要输入:斗破   苍穹(中间加入了空格),控制台只会展示:斗破  。这是为什么呢?是因为在使用提取符读入时,会跳过空白字符。因此,在运行程序时,由于在输入字符串时加入了空格,所以只有”斗破“被读入name。

接下来我将为小伙伴们带来一个解决妙招!且看下面代码:

#include <string>
#include <iostream>
 
using namespace std;
 
int main()
{
	string name;	
 
	cout << "姓名:";	
	getline(cin, name);			
 
	cout << "你好," << name << "。\n";		

getline(cin,变量名)读入的时包括空格的字符串。在回车键之前键入的所有字符都将放入字符串型的变量中。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5pa95b6LLg==,size_20,color_FFFFFF,t_70,g_se,x_16

未完待续

如果觉得本篇博客对正在学习编程的你有帮助的话,请给施律.多一点的支持与关注!未来的一段时间里施律.将和小伙伴们一起斗破CPP,希望下次的我能为大家奉上更好的博客内容,也希望下次的博客有你!
 

猜你喜欢

转载自blog.csdn.net/qq_64263760/article/details/124053651
cpp
今日推荐