第一个应用程序

写代码这件事实际上就是通过自己的代码不停的调用别人写好的代码,也叫作API调用。我们不必关注具体原理,只用知道调用后会产生什么作用即可。

注释

  • 单行注释
1
//
  • 多行注释
1
2
/*
*/

程序文件基础结构

我们先来看最常见的一个程序文件:

1
2
3
4
5
6
7
8
#include <iostream>

int main()
{
std::cout << "Hello World!\n";

// return 0;
}

其中,各个内容的含义对应如下:

  • 预处理器指令:#include <iostream>include就是包含的意思,表示引用别人或者系统写好的代码。另外,<>表示系统写好的代码文件,""表示自己写的代码文件
  • 主函数:int main(),程序的入口
  • 函数语句块:由{}包裹的内容就是一个语句块
  • 程序语句:std::cout << "Hello World!\n";
    • std:::命名空间。避免重名问题
    • cout <<:指令
    • "Hello World!\n":传递的数据
  • 返回值:return 0。可以省略,因为c++会对main函数进行特殊处理,不写也会默认返回0

输入输出语句

  • 输出
1
std::cout << "你好" << std::endl;

其中,换行有两种写法:

  1. \n:不强制刷新输出缓冲区
  2. std::endl:强制刷新输出缓冲区

缓冲区就是程序往屏幕输出文字的中转站,等满足条件时会一次把缓冲区的内容输出。

  • 输入
1
2
3
4
// 声明变量
std::string input;
// 等待玩家输入
std::cin >> input;

注意:如果输入空字符,比如回车键,会一直等待数据

引用命名空间

为了简化代码,可以引用命名空间。

比如为了简化重复写std::

可以引用:

1
using namespace std;

折叠代码

1
2
#pragma region
#pragma endregion

帮助我们整理代码,只在编辑时有用,执行或发布代码会被自动删除。

数据

常量和变量

C语言一样。具体参见:C语言学习笔记-数据

这里补充一些C++中有关字符串的特殊用法。

字符串

字符串拼接

C语言不同的是,在C++中提供了很多简单的方法帮助我们进行字符串拼接。

  1. +号进行字符串拼接
1
2
3
string str = "123";
str = str + "456"
cout << str << endl;

注意! 字符串的拼接只能是变量拼另一个字符串,不能写成str = "123" + "456"。因为C++中没有两个const char*之间的+重载。

  1. +=进行字符串拼接
1
2
3
string str = "123";
str += "456"
cout << str << endl;

注意! 不能和数值类型直接进行拼接。不过可以和字符char进行拼接。

  1. 字符串变量.append(字符串或字符串变量)进行拼接
1
2
string str = "123";
str.append("456");

打印结果为:123456

字符串与其他类型的相互转换

需要引用命名空间和头文件:

1
2
#include <string>
using namespace std;

其他类型 -> 字符串

其他类型转换为字符串需要用到to_string方法。

1
2
int i = 10;
string str = to_string(i);

注意! to_string()虽然支持很多类型的参数进行转换,不过boolchar等等类型其实在to_string()的重载中没有直接写出。不过,直接把这些类型当作参数传进去也不会报错,这是由于方法的参数也存在隐式转换,他会自动转换为接近的类型再执行to_string()方法。

字符串 -> 其他类型

字符串转为其他类型需要用stoxx方法。

  • stoi:字符串转int
  • stol:字符串转long
  • stoll:字符串转long long
  • stoul:字符串转unsigned long
  • stoull:字符串转unsigned long long

转义字符

C语言一样。具体参见:C语言学习笔记-字符串

运算符

运算符分为算术运算符、关系运算符、逻辑运算符、位运算符和三目运算符。和C语言一致,具体参见:C语言学习笔记-运算符

类型转换

类型转换分为隐式转换和显示转换(主要是括号强转)。和C语言一样。具体参见:C语言学习笔记-数据

选择结构

选择结构包含if-else语句、switch-case语句以及三目运算符。和C语言一样,详情参见:C语言学习笔记-选择结构

循环结构

循环结构包含while循环、do while循环、for循环,还有嵌套相关的知识。和C语言一样,详情参见:C语言学习笔记-循环结构

函数

C语言一样,详情参见:C语言学习笔记-函数