cpp 02
😇就这么从基础语法开始速通速通速通,用c刷算法题实在是好痛苦自己要造太多轮子了!
不要完完整整看视频看课,直接上小案例和看文档。速通就好了。
1 打印99乘法表
#include <iostream>
using namespace std;int main() {// 外层循环控制行数(1到9)for (int i = 1; i <= 9; ++i) {// 内层循环控制每行的列数(1到当前行数)for (int j = 1; j <= i; ++j) {// 打印乘法表达式,使用setw(4)控制宽度,使输出对齐cout << j << "×" << i << "=" << j * i << "\t";}// 每行结束后换行cout << endl;}return 0;
}
这个程序的工作原理:
- 外层循环变量
i表示乘数,从 1 循环到 9 - 内层循环变量
j表示被乘数,从 1 循环到当前的i值(确保每行的表达式数量与行数相同) - 使用
\t(制表符)来对齐输出,使乘法表看起来更整齐 - 每行输出完成后使用
endl换行
运行程序后,会输出标准的 99 乘法表,格式如下:
1×1=1
1×2=2 2×2=4
1×3=3 2×3=6 3×3=9
...
1×9=9 2×9=18 ... 9×9=81
2 cpp的换行
在 C++ 中,换行需要显式输出,常用的方式有两种:
-
使用
endl:如示例中所示,cout << endl;会输出一个换行符,并且会刷新输出缓冲区。 -
使用转义字符
\n:直接在输出字符串中加入\n,例如cout << "\n";,仅输出换行符,不主动刷新缓冲区(性能略好,适合大量输出场景)。
在 99 乘法表的例子中,两种方式都可以实现换行效果。修改为 \n 的写法如下:
#include <iostream>
using namespace std;int main() {for (int i = 1; i <= 9; ++i) {for (int j = 1; j <= i; ++j) {cout << j << "×" << i << "=" << j * i << "\t";}cout << "\n"; // 用 \n 换行}return 0;
}
两种方式的输出结果完全一致,区别仅在于是否刷新缓冲区,日常使用中可根据需求选择。
【就是加endl是有换行的,类似于java的print和println?】
你说得非常对!C++ 中的 endl 和 Java 中的 println 确实很相似,都在输出内容后自动添加换行符,并且会刷新输出缓冲区;而如果只用 cout << "内容"(类似 Java 的 print),则不会自动换行,需要手动添加 \n(C++)或 \n(Java)来实现换行。
简单总结对应关系:
- C++ 的
cout << "内容" << endl;≈ Java 的System.out.println("内容");(换行 + 刷新) - C++ 的
cout << "内容\n";≈ Java 的System.out.print("内容\n");(仅换行,不主动刷新)
这种设计思路在很多编程语言中是共通的,核心就是区分 “单纯输出内容” 和 “输出内容并换行” 两种场景。
在打印 99 乘法表时,由于需要每行结束后换行,用 endl 或 \n 都能达到目的,根据代码风格选择即可。
3 解释头文件
C++ 基本语法 | 菜鸟教程
https://www.runoob.com/cplusplus/cpp-basic-syntax.html
在 C++ 程序中,#include <iostream> 是一个非常基础且常用的头文件,它的作用是引入输入输出流(Input/Output Stream)相关的功能,让程序能够实现数据的输入(如从键盘读取)和输出(如打印到屏幕)。
具体解释:
-
#include指令这是 C++ 的预处理指令,用于告诉编译器:“在编译当前代码前,先将指定头文件中的内容包含到当前文件中”。头文件中通常包含了函数声明、类定义、常量等,引入后程序才能使用这些功能。 -
<iostream>的含义i代表 Input(输入),o代表 Output(输出),stream表示 “流”(数据传输的抽象概念,类似水流的连续传输)。- 这个头文件定义了 C++ 标准库中用于输入输出的核心类和对象,例如:
cout:用于标准输出(默认是屏幕),我们用cout << "内容"打印信息到屏幕,就依赖它。cin:用于标准输入(默认是键盘),可以通过cin >> 变量从键盘读取数据。- 还有
cerr(标准错误输出)、clog(带缓冲的错误输出)等,以及相关的操作符(如<<输出运算符、>>输入运算符)。
-
为什么打印乘法表需要它?我们的程序中使用了
cout来输出乘法表的内容(如cout << j << "×" << i << "=" << j * i << "\t";),而cout的定义和功能实现就包含在<iostream>中。如果不包含这个头文件,编译器会不认识cout,从而报错。 -
using namespace std;与<iostream>的关系标准库中的cout、cin等都属于std(标准命名空间,namespace),用于避免不同库中同名标识符的冲突。using namespace std;这句话的作用是 “引入std命名空间”,这样我们可以直接写cout,而不用每次都写std::cout(全称)。(如果不写这句话,代码中需要用std::cout代替cout才能正常使用。)
总结:<iostream> 是 C++ 实现输入输出功能的基础头文件,没有它,程序就无法与用户进行基本的交互(如打印信息到屏幕、读取键盘输入)。我们的 99 乘法表程序正因为依赖 cout 输出内容,所以必须包含这个头文件。
4 goto
C++ goto 语句 | 菜鸟教程
https://www.runoob.com/cplusplus/cpp-goto-statement.html
知道但是不建议用
