C++学习笔记——基础知识部分(一)

本文用于学习笔记总结,作为初学者,如有差错恳请指正,若有侵权请私信~共勉!

1. C++应用程序的构成

包含两类文件,分别是.cpp文件(实现文件)和.h文件(头文件)。

一、头文件

为了防止同一头文件在一个项目中被重复包含,有两种方式(可以同时使用)
(1)

#define HEAD_H	//定义宏符号
#ifdef HEAD_H	//判断宏符号是否已被定义,如果已经定义直接跳到#endif后面
/*
内容
*/
#endif

(2)

#pragma once
/*
内容
*/
二、实现文件

(1)#include命令
#include命令指示编译程序将该命令所指的另一个现实文件嵌入到当前所在的现实文件中。其语法格式有两种:

#include <文件名>

此时编译器将在由编译系统设定的子目录中取搜索该头文件。

#include "头文件"

此时可在当前目录和PATH中所带的头文件,或者是编译器所在的路径中寻找对应的头文件。(适合自定义头文件)

2. 输出函数

C++中没有专门的输入输出语句,而是通过系统提供的输入输出流来实现该功能。
cout输出

cout<<内容1<<内容2;

cout语句执行的时候,数据会被顺序放到输出缓冲区中,直到输出缓冲区已满或者出现endl或者其他换行,会将输出缓冲区中的数据一齐输出,并清空缓冲区。下面我们来使用一下该语句:

#include<string>
int main()
{
	cout
	<<"Hello World!"
	<<endl;
}

当然,结果不如我们所愿

error C2065: “cout”: 未声明的标识符

这里需要引申两个概念
一个是我们之前说过的输入输出流,这些在C++中统称为“流类”。常用的几个“流类”其关系如下:
C++类库中的流类
cin和cout就是来自iostream头文件。
cin对应于标准输入流,用于从键盘读取数据,也可以被重定向为从文件中读取数据。
cout对应于标准输出流,用于向屏幕输出数据,也可以被重定向为向文件写入数据。
所以,我们在使用cout的时候需要进行头文件的声明。

#include<iostream>

第二个需要强调的就是std,std是个名称空间标示符,C++标准库中的函数或者对象都是在命名空间std中定义的,所以我们要使用标准函数库中的函数或对象都要使用std来限定。所以我们不能直接使用cout和endl,需要进行声明。以使用cout为例,有以下几种方式:

//直接在cout和endl前加std::,表示使用std空间中的cout和endl
#include<iostream>
int main()
{
	std::cout
	<<"Hello World!"
	<<std::endl;
	return 0;
}
//在主函数前声明using std::cout;using std::endl;,表示使用std空间中的cout和endl
#include<iostream>
using std::cout;
using std::endl;
int main()
{
	cout
	<<"Hello World!"
	<<endl;
	return 0;
}
//在主函数前面加using namespace std;,表示使用std空间中的全部函数
#include<iostream>
using namespace std;
int main()
{
	cout
	<<"Hello World!"
	<<endl;
	return 0;
}

如果我们自定义的变量中不涉及std空间中的函数名,推荐使用最后一种方法,这样我们可以直接使用std里面的其他函数而不需要一一进行声明。使用VS编程,可能会出现输出结果迅速消失的现象,这里可以使用system(“pause”)来暂停。

#include<iostream>
using namespace std;
int main()
{
	cout
	<<"Hello World!"
	<<endl;
	system("pause");
	return 0;
}

除了使用endl进行换行,也可以使用\n进行换行

3. 输入函数

(1)cin输入

cin>>变量1>>变量2;

一个例子如下:

#include<iostream>
using namespace std;
int main()
{
	int a,b,c;
	cin>>a>>b;	//输入两个整形数
	c=a>b?a:b;	//比较大小并将大数赋值给c
	cout<<c;	//输出c
	system("pause");
}

要注意cin后面是“>>”,它叫提取运算符,而cout后面是“<<”,它叫插入运算符,要注意区分。
当我们试着使用cin去输出字符串就会发现一个问题,如果我们输出的字符串内部有空格,那么cin只会读取空格前面的内容,除了空格符,制表符、回车符都会有这种效果。

#include<iostream>
using namespace std;
int main()
{
	char a[20];
	cin>>a;	
	cout<<a;
	system("pause");
}
we are student
we请按任意键继续. . .

这个时候需要使用另外两种方式
(2)cin.get输入
cin.get输入有两种语法格式:

cin.get(字符变量)

这种方式只能输入一个字符,但是空格符等字符也会被输入。

cin.get(字符数组,字符数目)

这种方式可以输入多个字符,即可输入字符串,同样空格符等字符也会被输入。
我们看一下下面两个例子
1.

#include<iostream>
using namespace std;
int main()
{
	char a1,a2,a3,a4;
	cin.get(a1);
	cin.get(a2);
	cin.get(a3);
	cin.get(a4);
	cout<<a1<<a2<<a3<<a4;
	system("pause");
}
ab d
ab d请按任意键继续. . .

虽然实现了输出空格的目标,但是太过于繁琐,不适合字符串长度太长或不知的情况。
2.

#include<iostream>
using namespace std;
int main()
{
	char a[20];
	cin.get(a,19);
	cout<<a;
	system("pause");
}
we are student
we are student请按任意键继续. . .

这种方法就可以实现前面的目标。此外,还有以下方式
(3)cin.getline输入
其语法格式为

cin.getline (字符数组,字符数目);

具体方式与前面相似:

#include<iostream>
using namespace std;
int main()
{
	char a[20];
	cin.getline(a,19);
	cout<<a;
	system("pause");
}
we are student
we are student请按任意键继续. . .

此外,C语言中的printf和scanf也是可以用到C++中,后面再介绍几种输入输出函数:

函数名功能
puts( )输出字符串并换行
gets( )读取字符串
putchar( )输出一个字符
getch( )读入一个字符但不显示
getche( )读入一个字符并显示
getchar( )读入一个字符并显示(会显示所有输入的字符)

无必要区分后三个的特点,在一些交互式的系统设计中需要使用。为方便理解,可利用如下代码进行测试(每次取消其中一个注释)

#include<iostream>
#include <conio.h>
using namespace std;
int main()
{
	char a;
	//a=getch();
	//a=getche();
	//a=getchar();
	cout<<"\n"<<a;
	system("pause");
}

4. 注释语句

这部分和C语言相同,单行注释用//,多行注释用/* */。一般情况下,源程序的有效注释量必须在20%以上。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值