Skip to content

Commit 8f2ab43

Browse files
authored
Add files via upload
1 parent f2b18eb commit 8f2ab43

1 file changed

Lines changed: 246 additions & 0 deletions

File tree

Lines changed: 246 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,246 @@
1+
写C++程序其实很简单,直接用记事本写好代码,然后用一个编译器做编译运行就可以了;不过这意味这我们得自己保证语法正确,严重影响开发效率。所以实际应用中我们一般都会使用功能更强大的工具,除了提供编译器外,还可以给我们做语法检查和提醒,方便我们调试程序——这就是所谓的“集成开发环境”(IDE)。
2+
3+
这里我们使用ubuntu系统来演示,首先我们需要一个ide来编辑代码,这里我们选择 vscode,安装好软件后就可以写代码了
4+
下面就是一段最简单的代码,我们在屏幕上输出Hello World。 
5+
6+
```cpp
7+
#include<iostream>
8+
9+
int main()
10+
11+
{
12+
13+
std::cout << "Hello World!" << std::endl;
14+
15+
}
16+
```
17+
在Linux上运行C++程序的过程通常包括以下步骤:
18+
19+
- 安装编译器: 确保安装了C++编译器。常见的C++编译器是`g++`。可以通过以下命令安装:
20+
```bash
21+
sudo apt update
22+
sudo apt install g++
23+
```
24+
25+
- **编写C++源代码**: 使用任何文本编辑器(如`vim``nano``gedit`等)编写C++源代码。例如,将代码保存为`example.cpp`
26+
- ![[Pasted image 20250117134817.png]]
27+
28+
- **编译链接代码**: 使用`g++`命令编译C++源代码为可执行文件。假设源代码文件名为`example.cpp`,你可以运行以下命令:
29+
```bash
30+
g++ example.cpp -o example
31+
```
32+
33+
- 这里,`-o example`表示生成名为`example`的可执行文件。
34+
- example文件是一个经过编译和链接的ELF格式可执行文件,它包含了运行程序所需的机器码、数据以及元信息。在Linux中,不需要文件扩展名来标识其为可执行文件,系统通过文件权限和格式识别它。
35+
36+
- **运行程序**: 编译完成后,使用以下命令运行生成的可执行文件:
37+
```bash
38+
./example
39+
```
40+
41+
![[Pasted image 20250117134942.png]]
42+
终端就会打印出Hello World
43+
44+
当然我们还没有完全发挥IDE的优势(众多的实用插件)
45+
写c++程序我们可以安装以下插件实现代码自动补全和一键编译运行
46+
![[Pasted image 20250117135309.png]]
47+
![[Pasted image 20250117135412.png]]
48+
49+
**代码解读** 
50+
51+
### 1. `#include "iostream"`
52+
53+
```cpp
54+
#include "iostream"
55+
```
56+
57+
- `#include`是预处理指令,用于引入头文件。这里引入的是`iostream`头文件,它包含了C++中与输入输出相关的功能。
58+
- `iostream`提供了`cin``cout``cerr`等用于输入和输出的对象。`cout`用于输出,`cin`用于输入。
59+
60+
### 2. `using namespace std;`
61+
62+
```cpp
63+
using namespace std;
64+
```
65+
66+
- 这行代码告诉编译器,当前程序使用`std`(标准)命名空间中的所有对象和函数。
67+
- `std`命名空间包含了标准库中的类和函数,如`cout``cin``string`等。
68+
- 如果不使用这行代码,你需要在每次使用标准库的功能时都加上`std::`前缀。例如:`std::cout`
69+
70+
### 3. `int main()`
71+
72+
```cpp
73+
int main()
74+
```
75+
76+
- `main`是程序的入口点,程序的执行从这里开始。
77+
- `int`表示`main`函数返回一个整数类型的值。返回值通常用来表示程序的运行状态,`0`表示程序正常结束。
78+
79+
### 4. `cout << "Hello World!" << endl;`
80+
81+
```cpp
82+
cout << "Hello World!" << endl;
83+
```
84+
85+
- `cout`是标准输出流对象,用于将数据输出到屏幕上。
86+
- `<<`是流插入运算符,用于将数据发送到输出流中。在这里,`"Hello World!"`字符串被发送到`cout`,也就是显示在屏幕上。
87+
- `endl`是输出流中的换行符,它不仅会换行,还会刷新输出流,确保输出的内容立即显示。
88+
89+
### 5. `return 0;`
90+
91+
```cpp
92+
return 0;
93+
```
94+
95+
- `return`语句用于结束`main`函数,并将一个整数值返回给操作系统。返回`0`表示程序成功执行并正常退出。
96+
- `main`函数返回的值通常用于表示程序的退出状态,`0`表示程序没有错误地运行。
97+
98+
### 程序执行流程:
99+
100+
1. 编译器将代码中的`#include "iostream"`替换为`iostream`头文件的内容。
101+
2. `main`函数开始执行,`cout << "Hello World!" << endl;`输出`Hello World!`并换行。
102+
3. 程序通过`return 0;`返回`0`,表示程序正常结束。
103+
104+
### 输出结果:
105+
106+
```
107+
Hello World!
108+
```
109+
110+
**注释** 
111+
112+
可以看到,纯粹的代码还是比较抽象的;特别是当代码越来越多、越来越复杂之后,就会变得越来越难理解。所以我们一般会插入一些解释说明的文字,这叫做“注释”。注释不会被执行,对代码的功能没有任何影响。 
113+
114+
在C++中,有两种注释的表示。一种是单行注释,用双斜线“//”,表示以它开始的当前行是注释内容;另一种是多行注释,使用一对“界定符”(/**/),在它们之间的所有内容都是注释。
115+
116+
**初步认识函数** 
117+
118+
通过一个最简单的Hello World程序,我们已经了解了C++基本的代码风格、简单的输入输出操作,以及程序编译运行的完整过程。利用这些知识我们可以为这个程序增加更多的功能,比如提示用户输入自己的名字XXX,然后显示“Hello, XXX”。 
119+
120+
代码如下:
121+
```cpp
122+
#include<iostream>
123+
124+
using namespace std;
125+
126+
int main()
127+
128+
{
129+
130+
// 输出一行信息 
131+
132+
cout << "Hello World!" << endl;
133+
134+
// 提示输入姓名 
135+
136+
cout << "请输入您的大名:" << endl;
137+
138+
// 用一个变量接收键盘输入 
139+
140+
string name;
141+
142+
cin >> name;
143+
144+
// 输出欢迎信息 
145+
146+
cout << "Hello, " << name << endl;
147+
148+
return 0;
149+
150+
}
151+
```
152+
但是这样代码就比较多了,可读性会变差。解决办法是,我们可以把中间一部分代码“包装”成函数,就像主函数一样。只不过这种函数不是启动直接调用的,而是需要在程序中明确地写出来什么时候调用。 
153+
154+
代码如下:
155+
```cpp
156+
#include<iostream>
157+
158+
using namespace std;
159+
160+
// 定义一个函数
161+
162+
void welcome()
163+
164+
{
165+
166+
cout << "Hello World!" << endl;
167+
168+
cout << "请输入您的大名:" << endl;
169+
170+
string name;
171+
172+
cin >> name;
173+
174+
cout << "Hello, " << name << endl;
175+
176+
}
177+
178+
int main()
179+
180+
{
181+
182+
// 调用函数
183+
184+
welcome();
185+
186+
return 0;
187+
188+
}
189+
```
190+
191+
这样每一部分处理逻辑都可以分块包装成函数,主函数的执行过程看起来就简单多了。当然,如果认为一个文件中有太多函数也会影响可读性,我们还可以把它们分开。比如新建一个叫做welcom.cpp的源文件,专门放刚才的welcome函数。而在主函数中,需要额外对它做一个“声明”,表示有这样一个函数,它的实现在另外的文件里。
192+
```cpp
193+
#include <iostream> // 用于 cout 和 cin
194+
195+
#include <string> // 用于 string
196+
197+
using namespace std;
198+
199+
200+
201+
// welcome 函数定义
202+
203+
void welcome() {
204+
205+
cout << "Hello World!" << endl;
206+
207+
cout << "请输入您的大名:" << endl;
208+
209+
string name;
210+
211+
cin >> name;
212+
213+
cout << "Hello, " << name << endl;
214+
215+
}
216+
```
217+
main.cpp
218+
```cpp
219+
#include <iostream>
220+
221+
using namespace std;
222+
223+
224+
225+
// 声明 welcome 函数
226+
227+
void welcome();
228+
229+
230+
231+
int main() {
232+
233+
welcome(); // 调用 welcome 函数
234+
235+
return 0;
236+
237+
}
238+
```
239+
终端输入
240+
```bash
241+
g++ main.cpp welcome.cpp -o myprogram
242+
./myprogram
243+
```
244+
将两个cpp文件编译链接到一起为myprogrm输出
245+
![[Pasted image 20250117150904.png]]
246+
函数是C++中基本的编程单元,也是“模块化编程”的核心思想,我们还会在后面的章节详细展开。

0 commit comments

Comments
 (0)