C++ 基础语法

C++C++Beginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

在本实验中,你将学习 C++ 程序的基本结构,探索基础语法元素,并理解程序的执行过程。这个动手实践是为初学者设计的,将帮助你在 WebIDE 环境中打下编写和理解 C++ 代码的坚实基础。

设置你的第一个 C++ 程序

让我们从创建并分析一个简单的 C++ 程序开始。这将帮助你理解 C++ 程序的基本结构和组成部分。

  1. 在 WebIDE 中,你应该会在左侧看到一个文件资源管理器。右键点击文件资源管理器区域,然后选择“新建文件”。
  2. 将新文件命名为 hello.cpp 并按回车键。
  3. 新文件应该在编辑器中打开。如果没有,双击文件资源管理器中的 hello.cpp 以打开它。
  4. 在编辑器中,输入以下 C++ 代码:
#include <iostream>
using namespace std;

int main() {
    cout << "Hello, C++!" << endl;
    return 0;
}
C++ 代码编辑器截图

让我们分解这段代码:

  1. #include <iostream>:这是一个预处理器指令,用于包含输入/输出流库。它相当于告诉 C++ 我们想要使用输入和输出操作的工具。
  2. using namespace std;:这行代码允许我们在不添加 std:: 前缀的情况下使用标准库中的元素。它相当于说“我希望使用标准工具集,而不必每次都指定它们的来源”。
  3. int main() { ... }:这是主函数,程序从这里开始执行。每个 C++ 程序都必须有一个 main 函数。main 前面的 int 表示该函数将返回一个整数值。
  4. cout << "Hello, C++!" << endl;:这行代码将文本“Hello, C++”输出到控制台。cout 用于输出,<< 是输出操作符,endl 在文本后添加一个新行。
  5. return 0;:这表示程序已成功执行。返回值 0 通常用于表示一切按预期进行。

现在,让我们编译并运行我们的程序:

  1. 在 WebIDE 中找到一个终端或控制台面板。如果没有看到,你可能需要打开它(通常在“终端”或“视图”菜单下有一个“新建终端”选项)。

  2. 在终端中,确保你位于正确的目录中。你可以使用 pwd 命令检查当前目录,并使用 cd 命令导航到所需目录。

  3. 要编译程序,请在终端中输入以下命令:

    g++ -o hello hello.cpp
  4. 要运行编译后的程序,请输入:

    ./hello

你应该会看到输出:Hello, C++!

显示程序输出的终端截图

如果遇到任何错误,请仔细检查代码中的拼写错误。记住,C++ 是区分大小写的,因此 coutCoutCOUT 是不同的。

理解变量与数据类型

在这一步中,我们将探索 C++ 中的变量和基本数据类型。变量用于在程序中存储数据,理解不同的数据类型对于高效编程至关重要。

  1. 在 WebIDE 中,创建一个名为 variables.cpp 的新文件。你可以通过右键点击文件资源管理器并选择“新建文件”来完成此操作。
  2. 在编辑器中打开 variables.cpp 并输入以下代码:
#include <iostream>
#include <string>
using namespace std;

int main() {
    // 整型变量
    int age = 25;

    // 浮点型变量
    float height = 1.75;

    // 字符型变量
    char grade = 'A';

    // 布尔型变量
    bool isStudent = true;

    // 字符串变量(C++ string 类)
    string name = "Alice";

    cout << "Name: " << name << endl;
    cout << "Age: " << age << " years" << endl;
    cout << "Height: " << height << " meters" << endl;
    cout << "Grade: " << grade << endl;
    cout << "Is a student: " << (isStudent ? "Yes" : "No") << endl;

    return 0;
}

让我们分解使用的不同数据类型:

  1. int:用于整数。在我们的示例中,age 是一个整数。
  2. float:用于小数。我们用它来表示 height。还有 double,它提供更高的精度但占用更多内存。
  3. char:用于单个字符。我们的 grade 变量是一个字符。
  4. bool:用于真/假值。isStudent 是一个布尔变量。
  5. string:用于文本。注意我们在顶部包含了 <string> 以使用此类型。

该程序演示了如何声明不同类型的变量以及如何使用 cout 输出它们。

注意这一行:cout << "Is a student: " << (isStudent ? "Yes" : "No") << endl;。这里使用了三元运算符 ?:,它是 if-else 语句的简写形式。它的意思是“如果 isStudent 为真,则打印 'Yes',否则打印 'No'”。

要编译并运行程序:

  1. 在 WebIDE 的终端面板中,确保你位于正确的目录中。

  2. 使用以下命令编译程序:

    g++ -o variables variables.cpp
  3. 使用以下命令运行程序:

    ./variables

如果看到任何错误,请检查拼写错误。常见的错误包括忘记在语句末尾添加分号或引号不匹配。

控制结构 - If 语句与循环

控制结构允许你控制程序的流程。让我们探索 if 语句和循环,它们是创建动态和响应式程序的基础。

  1. 在 WebIDE 中,创建一个名为 control.cpp 的新文件。
  2. 在编辑器中打开 control.cpp 并输入以下代码:
#include <iostream>
using namespace std;

int main() {
    int number;
    cout << "Enter a number: ";
    cin >> number;

    // If 语句
    if (number > 0) {
        cout << "The number is positive." << endl;
    } else if (number < 0) {
        cout << "The number is negative." << endl;
    } else {
        cout << "The number is zero." << endl;
    }

    // For 循环
    cout << "Counting from 1 to 5:" << endl;
    for (int i = 1; i <= 5; i++) {
        cout << i << " ";
    }
    cout << endl;

    // While 循环
    int count = 5;
    cout << "Countdown:" << endl;
    while (count > 0) {
        cout << count << " ";
        count--;
    }
    cout << endl;

    return 0;
}

让我们分解使用的控制结构:

  1. If-Else 语句:
    这允许程序做出决策。其结构为:

    if (条件) {
        // 如果条件为真,则执行此代码
    } else if (另一个条件) {
        // 如果此条件为真,则执行此代码
    } else {
        // 如果没有任何条件为真,则执行此代码
    }
  2. For 循环:
    当你希望重复执行一段代码一定次数时使用。其结构为:

    for (初始化; 条件; 更新) {
        // 重复执行的代码
    }

    在我们的示例中,int i = 1 初始化循环变量,i <= 5 是继续循环的条件,i++ 在每次迭代后更新循环变量。

  3. While 循环:
    当你希望只要条件为真就重复执行一段代码时使用。其结构为:

    while (条件) {
        // 重复执行的代码
    }

    在我们的示例中,只要 count > 0,循环就会继续。

要编译并运行程序:

  1. 在 WebIDE 的终端面板中,确保你位于正确的目录中。

  2. 使用以下命令编译程序:

    g++ -o control control.cpp
  3. 使用以下命令运行程序:

    ./control

当你运行程序时,它会要求你输入一个数字。尝试输入不同的数字(正数、负数、零)以查看 if 语句的工作原理。然后,程序将演示 for 循环和 while 循环,无论你输入了什么。

如果遇到任何错误,请检查常见问题,例如缺少分号、大括号不匹配或变量名拼写错误。

C++ 中的函数

函数是执行特定任务的代码块。它们有助于组织代码,使其可重用且更易于理解。让我们创建一个程序来演示函数的使用。

  1. 在 WebIDE 中,创建一个名为 functions.cpp 的新文件。
  2. 在编辑器中打开 functions.cpp 并输入以下代码:
#include <iostream>
using namespace std;

// 计算数字平方的函数
int square(int num) {
    return num * num;
}

// 检查数字是否为偶数的函数
bool isEven(int num) {
    return num % 2 == 0;
}

// 带有默认参数的函数
void greet(string name = "Guest") {
    cout << "Hello, " << name << "!" << endl;
}

int main() {
    int number = 7;

    cout << "Square of " << number << " is: " << square(number) << endl;

    if (isEven(number)) {
        cout << number << " is even." << endl;
    } else {
        cout << number << " is odd." << endl;
    }

    greet();  // 使用默认参数
    greet("Alice");  // 提供名称

    return 0;
}

让我们分解这个程序的组成部分:

  1. 函数定义:
    函数通过返回类型、名称和参数(如果有)来定义。例如:

    int square(int num) {
        return num * num;
    }

    这个函数接受一个整数 num,计算其平方并返回结果。

  2. 返回布尔值的函数:

    bool isEven(int num) {
        return num % 2 == 0;
    }

    如果数字是偶数,此函数返回 true,否则返回 false% 运算符用于获取除法的余数。

  3. 带有默认参数的函数:

    void greet(string name = "Guest") {
        cout << "Hello, " << name << "!" << endl;
    }

    这个函数有一个默认参数。如果在调用函数时未提供参数,它将使用 "Guest"。

  4. 函数调用:
    main() 函数中,我们演示了如何调用这些函数并使用它们的返回值。

要编译并运行程序:

  1. 在 WebIDE 的终端面板中,确保你位于正确的目录中。

  2. 使用以下命令编译程序:

    g++ -o functions functions.cpp
  3. 使用以下命令运行程序:

    ./functions

这个程序演示了如何使用函数将代码组织成可管理的、可重用的部分。如果遇到任何错误,请检查拼写错误、缺少分号或大括号不匹配。此外,确保在调用函数时使用正确的函数名称。

基本输入输出操作

在这最后一步中,我们将创建一个程序来演示 C++ 中的各种输入输出操作。理解如何通过输入输出与用户交互对于创建交互式程序至关重要。

  1. 在 WebIDE 中,创建一个名为 io_operations.cpp 的新文件。
  2. 在编辑器中打开 io_operations.cpp 并输入以下代码:
#include <iostream>
#include <iomanip>  // 用于 setprecision
#include <string>   // 用于字符串操作
using namespace std;

int main() {
    string name;
    int age;
    double height;

    // 输入操作
    cout << "Enter your name: ";
    getline(cin, name);  // 读取整行,包括空格

    cout << "Enter your age: ";
    cin >> age;

    cout << "Enter your height in meters: ";
    cin >> height;

    // 输出操作
    cout << "\n--- Your Information ---\n";
    cout << "Name: " << name << endl;
    cout << "Age: " << age << " years" << endl;

    // 设置浮点数输出的精度
    cout << fixed << setprecision(2);
    cout << "Height: " << height << " meters" << endl;

    // 使用 width 和 fill 进行格式化输出
    cout << "\nFormatted Age Display:\n";
    cout << setw(10) << setfill('.') << left << "Age" << setw(5) << right << age << endl;

    return 0;
}

让我们分解这个程序的关键组成部分:

  1. 额外的头文件:

    • #include <iomanip>:这个头文件提供了输入输出操作符,如 setprecisionsetw
    • #include <string>:这个头文件用于字符串操作,尽管它通常与 <iostream> 一起隐式包含。
  2. 输入操作:

    • getline(cin, name):这读取整行输入,包括空格。它对于读取姓名或句子非常有用。
    • cin >> age:这读取一个值到 age 变量中。>> 操作符用于输入。
  3. 输出操作:

    • cout << "Text" << variable << endl:这是基本的输出操作。<< 操作符用于输出。
    • endl:这添加一个新行并刷新输出缓冲区。
  4. 格式化输出:

    • cout << fixed << setprecision(2):这将浮点数的输出设置为始终显示两位小数。
    • setw(10):这将下一个输出字段的宽度设置为 10 个字符。
    • setfill('.'):这将填充字符设置为 '.',用于填充字段中的任何空白。
    • leftright:这些设置输出在其字段内的对齐方式。

要编译并运行程序:

  1. 在 WebIDE 的终端面板中,确保你位于正确的目录中。

  2. 使用以下命令编译程序:

    g++ -o io_operations io_operations.cpp
  3. 使用以下命令运行程序:

    ./io_operations

当你运行程序时,它会提示你输入你的姓名、年龄和身高。输入这些信息后,程序将以格式化方式将其显示给你。

需要注意的常见问题:

  • 如果你的程序跳过了姓名输入,可能是由于输入缓冲区中遗留了换行符。要解决此问题,可以在 getline(cin, name); 之前添加 cin.ignore();
  • 确保为年龄和身高输入有效的数字。输入非数字值可能会导致意外行为。

这个程序演示了如何处理不同类型的输入,包括带有空格的字符串,以及如何格式化输出以提高可读性。这些技能对于创建用户友好的交互式 C++ 程序至关重要。

总结

在本实验中,你通过 WebIDE 环境获得了 C++ 编程基础概念的动手实践经验。你学到了:

  1. 如何在 WebIDE 中创建、编译和运行一个基本的 C++ 程序。
  2. 在 C++ 中使用变量和不同的数据类型。
  3. 如何实现控制结构,如 if 语句和循环。
  4. 创建和使用函数来组织和重用代码。
  5. 基本的输入输出操作,包括格式化输出。

这些概念构成了 C++ 编程的基础,在你学习更高级的主题时将至关重要。记住,编程中实践是关键。尝试修改这些程序或创建新的程序来巩固你的学习。不要害怕实验和犯错——调试是开发的重要技能。

随着你继续 C++ 的学习之旅,你将发现该语言的更多高级特性,例如面向对象编程、模板以及标准库的使用。继续探索,编程愉快!

使用 WebIDE 进行 C++ 开发非常方便,尤其是对初学者而言。它提供了一个一致的环境,并消除了许多设置问题。然而,随着你的进步,你可能会希望探索本地开发环境和 IDE,如 Visual Studio、CLion 或 Code::Blocks,以获得更多高级功能和更快的编译时间。

您可能感兴趣的其他 C++ 教程