C++学习-入门到精通-【1】C++编程入门,输入/输出和运算符
C++编程入门,输入/输出和运算符
- C++学习-入门到精通-【1】C++编程入门,输入/输出和运算符
- 第一个C++程序:输出一行文本
- 算术运算
第一个C++程序:输出一行文本
// 文本打印程序
#include <iostream> // 包含该头文件程序才能将数据输出到屏幕上
// main函数是程序执行起始位置
int main()
{
// 输出信息
std::cout << "This is a sample of cout\n";
// 指明程序执行成功
return 0;
} // main函数调用结束
std命名空间
可能有些从注意到了,在输出语句中的cout
前面还有一个std::
。这里标准输出流cout
前面的std::
是不能省略的,它表明cout是命名空间std中的一个名字;标准输入流cin
和标准错误流cerr
都是属于这个命名空间;
如果在以后的代码中,每个cout
、cin
、cerr
此类的名字前面都需要加上一个std::
这样是非常麻烦的,但是它们是无法省略的,所以有另一种方法,使得可以直接使用这些名字——using声明和using指令;
流插入运算符和转义字符
<<
是流插入运算符。当程序执行时,运行符右边的值被插入到输出流中。注意运算符指向数据流动的方向(字符串流入输出流cout中)。注意在这个字符串中包含了一个\n
,它并不会被输出。\
是转义字符,它表明这是一个特殊字符;
转义 | 作用 |
---|---|
\n | 换行符。将屏幕光标定位到下一行的开始处。 |
\t | 水平制表符。将屏幕光标定位到下一个制表位置 |
\r | 回车符。将屏幕光标定位到当前行的开始处。 |
\a | 响铃符。系统开始发出响铃声。 |
\\ | 反斜线符号。用于输出一个反斜线。 |
\’ | 单引号。用于输出一个单引号。 |
\" | 双引号。用于输出一个双引号。 |
返回语句
这里的return语句表示函数结束。与C语言不同,根据C++的标准,如果程序执行到main的末尾但没有遇到return语句,也会认为程序成功的终止,就像遇到了return 0;
一样。
std::cout << "This a sample ";
std::cout << "of cout\n";
这段代码输出结果与之前的代码相同,所以每个流插入都会在上一个流插入停止输出的地方开始继续插入输出。这段代码在输出了第一个字符串之后,第二行的流输出语句,会继续在sample后面的空格之后输出of cout;
同样的流输入语句cin
和cout
的使用相同不过它使用的是流提取运算符>>
,运算符的指向同样表明了数据的流动方向(从标准输入cin流动到变量中);注意这里不需要像scanf函数一样使用指针来接收,也不需要指定接收数据的格式
;
#include <iostream>
// 计算两个数之和
int main()
{
int a = 0;
int b = 0;
int sum = 0;
// 从键盘中接收两个int类型的数据
std::cout << "Enter first number:>";
std::cin >> a;
std::cout << "Enter second number:>";
std::cin >> b;
// 计算两数之和
sum = a + b;
// 输出计算结果
std::cout << "sum = " << sum << std::endl;
}
在最后的std::cout语句中,出现了一个std::endl
。它是一个流操纵符,名称endl
是end line
的缩写,它也属于名字空间std
。这个流操纵符输出一个换行符,然后“刷新输出缓冲”。缓冲区是文件管理系统的一个组成部分,可以分为输入缓冲区和输出缓冲区,数据在进入流之后并不是直接就传送给内存/硬盘,而是会先传输到缓冲区,直到缓冲区填满里面的数据都会流入下一个地方。这里使用endl
就可以强制将缓冲区中的内容输出,不管是否填满。
std::cout << "sum = " << sum << std::endl;
这行代码中,输出了多个不同类型的值。这就代表流插入运算符<<
知道如何输出每种类型的数据。在单条语句中使用多个<<
称为连接、链接或串联的流插入运算符。
算术运算
C++运算 | C++算术操作符 | 使用示例 |
---|---|---|
加法 | + | 3 + 7 |
减法 | - | 5 - 2 |
乘法 | * | 2 * 5 |
除法 | / | 4 / 2 |
取模 | % | 5 % 2 |
使用示例:
#include <iostream>
using namespace std;
int main()
{
// 整数除法
int num1 = 0;
int num2 = 0;
// 提示输入两个操作数
cout << "Enter Two number fot divide:>";
cin >> num1 >> num2;
// 计算整数除法
cout << "ret = " << num1 / num2 << endl;
// 浮点数除法
float fnum1 = 0;
float fnum2 = 0;
// 提示输入两个操作数
cout << "Enter Two number fot divide:>";
cin >> fnum1 >> fnum2;
// 计算整数除法
cout << "ret = " << fnum1 / fnum2 << endl;
}
注意:
除法是被分为整数除法和浮点数除法两种;
- 整数除法,计算结果的小数部分直接截去;
- 浮点数除法,计算结果包含小数部分;
上面代码的运行结果:
同时,大家可以注意到上面代码中,使用cout输出数据时,并没有在前面指明它的命名空间,这是因为使用using
声明。using namespace std
这条语句使得程序可以使用它包含的任何标准C++头文件中的所有名字。
除了上面的方法之外,还可以对每个要使用的名字进行声明,如:using std::cout
、using std::cin
等。