简介
在本实验中,你将学习如何编写你的第一个 C++ 程序。你将从在 Ubuntu 22.04 上安装 GCC(GNU 编译器集合)并配置必要的环境变量开始。然后,你将创建一个新的 C++ 源文件,编写基本的程序结构,并使用 cout
语句打印 "Hello World" 消息。你还将学习如何编译和执行程序,以及如何添加单行和多行注释,使用 endl
和 \n
进行换行,并修复常见的语法错误,如缺少分号。
在本实验中,你将学习如何编写你的第一个 C++ 程序。你将从在 Ubuntu 22.04 上安装 GCC(GNU 编译器集合)并配置必要的环境变量开始。然后,你将创建一个新的 C++ 源文件,编写基本的程序结构,并使用 cout
语句打印 "Hello World" 消息。你还将学习如何编译和执行程序,以及如何添加单行和多行注释,使用 endl
和 \n
进行换行,并修复常见的语法错误,如缺少分号。
在这一步骤中,你将学习如何在 Ubuntu 22.04 上安装用于 C++ 的 GCC(GNU 编译器集合)编译器并配置必要的环境变量。GCC 是编译和运行 C++ 程序所必需的。
首先,让我们在 WebIDE 中打开终端。你可以通过点击屏幕底部的终端图标或使用键盘快捷键(通常是 Ctrl+`)来打开终端。
我们将从更新软件包列表开始,以确保我们拥有关于可用软件包的最新信息:
sudo apt update
示例输出:
Hit:1 http://mirrors.cloud.aliyuncs.com/ubuntu jammy InRelease
Hit:2 http://mirrors.cloud.aliyuncs.com/ubuntu jammy-updates InRelease
Hit:3 http://mirrors.cloud.aliyuncs.com/ubuntu jammy-backports InRelease
Hit:4 http://mirrors.cloud.aliyuncs.com/ubuntu jammy-security InRelease
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
157 packages can be upgraded. Run 'apt list --upgradable' to see them.
接下来,我们将安装 GCC 编译器及相关开发工具:
sudo apt install -y build-essential
示例输出:
Reading package lists...
Building dependency tree...
Reading state information...
build-essential is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 22 not upgraded.
要验证安装并检查 GCC 版本,请运行:
g++ --version
示例输出:
g++ (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
GCC 编译器通常已经存在于系统的 PATH 中,因此不需要额外的配置。
在这一步骤中,你将学习如何创建一个带有 .cpp
扩展名的新 C++ 源文件。在 C++ 中,源文件使用 .cpp
扩展名来表示它们包含 C++ 代码。我们将使用 WebIDE 的文件资源管理器和文本编辑器来创建我们的第一个 C++ 源文件。
首先,在终端中导航到 ~/project
目录:
cd ~/project
现在,打开 WebIDE 的文件资源管理器。你会看到一个侧边栏,其中列出了文件和文件夹。找到一个允许你创建新文件的图标——它可能看起来像一个“+”号或“新建文件”选项。
在文件资源管理器中右键单击并选择“新建文件”。当提示时,将文件命名为 hello.cpp
。.cpp
扩展名至关重要,因为它告诉编译器和开发工具这是一个 C++ 源文件。
终端中的文件创建示例(供参考):
touch hello.cpp
点击新创建的 hello.cpp
文件以在 WebIDE 的文本编辑器中打开它。你将看到一个空文件,准备编写你的第一个 C++ 代码。
.cpp
扩展名的重要性在于:
.c
(C)、.java
(Java)或 .py
(Python))区分开来此时,你的 hello.cpp
文件已准备好开始编写 C++ 代码。在接下来的步骤中,你将学习如何在此文件中编写一个基本的 C++ 程序。
在这一步骤中,你将学习 C++ 程序的基本结构,重点是 main()
函数。每个 C++ 程序都必须有一个 main()
函数,它是程序开始执行的入口点。
打开你在之前步骤中创建的 hello.cpp
文件。我们现在将添加基本的程序结构:
#include <iostream>
int main() {
// 你的代码将写在这里
return 0;
}
注意: 建议手动输入代码以获得更好的学习效果。请注意大括号
{ }
和分号;
,因为它们在 C++ 语法中至关重要。不要忘记空格和缩进,否则步骤验证可能会失败。
让我们分解这个基本结构:
#include <iostream>
:这是一个预处理器指令,用于包含输入/输出流库。它允许我们使用输入和输出操作,例如打印到屏幕。int main()
:这是主函数的声明
int
指定函数将返回一个整数值main()
是 C++ 程序的标准入口点()
表示该函数不接受任何参数{ }
:定义函数的主体,你的代码将写在这里return 0;
:表示程序成功完成
WebIDE 会在你输入时自动保存更改。或者,你可以使用编辑器的保存选项手动保存文件。
如果你想了解更多关于 WebIDE 的信息,请查看 WebIDE 指南。
一些需要记住的重要点:
main()
函数main()
函数是程序执行的起点return 0;
语句通常用于表示程序成功执行你可以将 main()
函数想象为旅程的起点。就像公路旅行从特定地点开始一样,C++ 程序从 main()
函数开始执行。
在这一步骤中,你将学习如何使用 cout
将 "Hello, World!" 消息打印到屏幕上。cout
是 C++ 标准输入/输出库的一部分,用于显示输出。
在 WebIDE 中打开 hello.cpp
文件,并修改 main()
函数以包含以下代码:
#include <iostream>
int main() {
std::cout << "Hello, World!" << std::endl;
return 0;
}
让我们分解这行新代码:
std::cout
:这是标准输出流对象
std::
表示我们正在使用标准命名空间cout
代表 "console output"(控制台输出)<<
:流插入运算符,用于将数据发送到输出流"Hello, World!"
:我们想要打印的文本消息std::endl
:添加一个新行并刷新输出缓冲区
保存文件时,请确保包含上面显示的完整结构。
关于 cout
的一些关键点:
<<
运算符可以链接以打印多个项目std::endl
用于在打印后创建新行你可以将 cout
想象成一个向世界宣布你的消息的扩音器。<<
运算符帮助你加载消息,而 std::endl
确保每个人都能清楚地听到它。
在这一步骤中,你将学习如何使用 g++
编译器编译你的 C++ 程序。编译是将人类可读的 C++ 源代码转换为计算机可以运行的可执行程序的过程。
在 WebIDE 中打开终端。确保你位于 ~/project
目录中:
cd ~/project
现在,让我们使用 g++
命令编译你之前创建的 hello.cpp
文件:
g++ hello.cpp -o hello
让我们分解这个命令:
g++
:GNU C++ 编译器hello.cpp
:你要编译的源文件-o hello
:指定输出可执行文件的名称
-o
是一个选项,允许你命名输出文件hello
是你将创建的可执行文件的名称示例输出:
## 没有输出意味着编译成功
如果编译成功,将不会显示任何错误消息。编译器会在同一目录中创建一个名为 hello
的可执行文件。
要验证编译结果,你可以检查目录中的文件:
ls
示例输出:
hello hello.cpp
你现在应该看到两个文件:
hello.cpp
:你的源代码文件hello
:编译后的可执行程序一些重要的编译注意事项:
g++
将显示错误消息-o
选项是可选的,但为可执行文件赋予一个有意义的名称是一个好习惯你可以将编译过程想象成将一本书从一种语言翻译成另一种语言。g++
编译器将你人类可读的 C++ 代码翻译成计算机可以理解和执行的语言。
在这一步骤中,你将学习如何运行刚刚编译的可执行程序。编译完 C++ 程序后,你可以使用 ./
命令后跟可执行文件的名称来执行它。
确保你位于 ~/project
目录中:
cd ~/project
要运行你在之前步骤中编译的程序,请使用以下命令:
./hello
./
告诉系统在当前目录中查找可执行文件,而 hello
是你创建的可执行文件的名称。
示例输出:
Hello, World!
让我们分解一下发生了什么:
./
表示“在当前目录中”一些重要的执行注意事项:
./
g++
会自动提供)你可以将执行程序想象成启动汽车。编译是准备汽车,而运行程序是转动钥匙并驾驶。
如果你想多次运行程序,只需重复 ./hello
命令即可。
在这一步骤中,你将学习如何向 C++ 代码添加注释。注释是代码中的说明性文字,用于解释代码的功能。它们会被编译器忽略,但有助于提高代码的可读性。
在 WebIDE 中打开 hello.cpp
文件,并修改它以包含不同类型的注释:
#include <iostream>
// 这是一个单行注释
// 它解释了程序的功能
/*
这是一个多行注释
你可以编写多行解释
而无需担心为每一行添加 //
*/
int main() {
// 打印问候消息
std::cout << "Hello, World!" << std::endl; // 解释输出的行内注释
/*
你也可以在代码中间
使用多行注释(如果需要)
*/
return 0; // 向操作系统返回成功状态
}
让我们分解一下注释的类型:
单行注释:
//
开头多行注释:
/*
开头*/
结尾行内注释:
编译并运行程序以验证它是否仍然正常工作:
g++ hello.cpp -o hello
./hello
示例输出:
Hello, World!
关于注释的一些关键点:
你可以将注释想象成书中的便利贴。它们提供了额外的上下文和解释,而不会改变实际内容。
在这一步骤中,你将学习两种在 C++ 输出中创建换行的方法:std::endl
和换行符 \n
。这两种方法都可以帮助你将输出格式化为多行。
在 WebIDE 中打开 hello.cpp
文件,并修改它以演示换行:
#include <iostream>
int main() {
// 使用 std::endl 进行换行
std::cout << "Hello, World!" << std::endl;
std::cout << "Welcome to C++ Programming!" << std::endl;
// 使用 \n 进行换行
std::cout << "Using newline character:\n";
std::cout << "Line 1\n";
std::cout << "Line 2\n";
// 混合使用两种方法
std::cout << "Mixing methods: " << std::endl;
std::cout << "Line with endl\n";
std::cout << "Line with newline character" << std::endl;
return 0;
}
👆 LabEx 小贴士: 点击代码块右下角的“Explain Code”与 Labby AI 聊天以获取代码解释。
让我们分解一下换行方法:
std::endl
:
<iostream>
库的一部分std::cout
一起使用\n
(换行符):
std::endl
更轻量编译并运行程序:
g++ hello.cpp -o hello
./hello
示例输出:
Hello, World!
Welcome to C++ Programming!
Using newline character:
Line 1
Line 2
Mixing methods:
Line with endl
Line with newline character
关键点:
std::endl
和 \n
都可以创建新行std::endl
更全面但稍慢\n
更快且更轻量你可以将换行想象成书中的段落分隔符。它们有助于组织和结构化你的输出。
在这一步骤中,你将学习 C++ 中的常见语法错误,重点关注缺少分号的问题。分号在 C++ 中至关重要,因为它们标志着语句的结束。
在 WebIDE 中创建一个名为 syntax_errors.cpp
的新文件:
cd ~/project
touch syntax_errors.cpp
#include <iostream>
int main() {
// 常见语法错误:缺少分号
std::cout << "This line has an error" // 这里缺少分号!
std::cout << "This line will not compile" << std::endl;
// 正确版本,带有分号
std::cout << "This line is correct" << std::endl;
std::cout << "All statements end with a semicolon" << std::endl;
return 0; // 这里也不要忘记分号!
}
尝试编译程序:
g++ syntax_errors.cpp -o syntax_errors
示例编译错误:
syntax_errors.cpp: In function ‘int main()’:
syntax_errors.cpp:5:42: error: expected ‘;’ before ‘std’
5 | std::cout << "This line has an error" // 这里缺少分号!
| ^
| ;
6 | std::cout << "This line will not compile" << std::endl;
| ~~~
关于分号的关键点:
;
结尾cout
语句之后return
语句之后让我们修复这些错误:
;
结尾编译修正后的版本:
g++ syntax_errors.cpp -o syntax_errors
./syntax_errors
如果成功,将不会出现错误消息。
你可以将分号想象成句子中的句号。它们标志着代码中一个完整思想的结束。
在本实验中,你将学习如何在 Ubuntu 22.04 上安装用于 C++ 的 GCC(GNU 编译器集合)编译器并配置必要的环境变量。你将创建一个新的 C++ 源文件,编写带有 int main()
函数的基本程序结构,并使用 cout
打印 "Hello World" 消息。然后,你将使用 g++
命令编译程序并执行它。此外,你还将学习如何添加单行和多行注释,使用 endl
和 \n
进行换行,以及修复诸如缺少分号之类的常见语法错误。
完成这些步骤后,你将为编写和运行你的第一个 C++ 程序打下坚实的基础,并了解在 Ubuntu 22.04 上进行 C++ 开发所需的基本工具和概念。