云计算百科
云计算领域专业知识百科平台

重生之我在10天内卷赢C++ - DAY 1

坐稳了,我们的C++重生之旅现在正式发车!请系好安全带,前方高能,但绝对有趣!


🚀 重生之我在10天内卷赢C++ – DAY 1

导师寄语:嘿,未来的编程大神!欢迎来到C++的世界。我知道,你现在可能对着黑乎乎的命令行窗口,心里犯嘀咕:“这玩意儿能干啥?” 别急,这扇黑色的门背后,是一个由你创造的、充满无限可能的奇幻世界。今天,我就带你拿到第一把钥匙,推开这扇门。记住,最牛的黑客,也是从第一行 Hello, World! 开始的。Let’s Go!

🎯 今日目标

  • 了解C++是个啥,建立基本印象。
  • 掌握Linux基本命令行操作,成为“命令行小子”。
  • 学会使用Vim编辑器,体验“键盘流”的快感。
  • 成功编译并运行你的第一个C++程序!
  • 掌握变量、输入输出,让程序“活”起来。
  • 养成写注释的好习惯,做个有“代码品”的程序员。

  • 1. C++的“前世今生” (听个故事,放松一下)

    想象一下,你有一辆老式的手动挡汽车,它叫 C语言。这车性能强劲,速度飞快,能让你完全掌控每一个零件。但问题是,开起来太费劲了!换挡、离合,一不小心就熄火,新手司机直接劝退。

    后来,一个叫Bjarne Stroustrup的大佬觉得:“这不行啊,我得给这车升个级!” 于是,他在C语言的基础上,加装了“自动挡”、“导航系统”、“安全气囊”等等一大堆现代化的玩意儿,并给它取了个新名字,叫 C++ (C Plus Plus,就是比C更强一点的意思)。

    所以,C++是什么?

    • 它是C语言的“超级进化版”:你能在C里做的,C++基本都能做。
    • 它更强大、更安全:它引入了**面向对象(OOP)**等高级特性,让你能像搭乐高一样组织代码,开发大型项目时不再一团乱麻。
    • 它性能依然是王者:它被广泛用于游戏引擎、桌面软件、服务器开发等一切需要“快”的领域。

    我们学C++,就像直接学开一辆现代化的“自动挡性能车”,既能体验速度与激情,又不会被复杂的操作搞得手忙脚乱。


    2. 磨刀不误砍柴工:搭建开发环境

    在Linux下,我们的“开发三件套”就是:命令行终端、Vim编辑器、g++编译器。

    2.1 Linux命令行:你的数字世界导航仪

    忘掉鼠标吧!在Linux世界,命令行是最高效的工具。它就像你和电脑之间的“密语”,你输入指令,它立即执行。

    打开你的终端(通常是按 Ctrl+Alt+T),我们来学几个“咒语”:

    • pwd (Print Working Directory):“我在哪儿?”

      • 输入 pwd แล้ว按回车,它会告诉你当前所在的文件夹路径。

      $ pwd
      /home/your_username

    • ls (List):“这里有啥?”

      • 输入 ls,它会列出当前文件夹下的所有文件和文件夹。

      $ ls
      Desktop Documents Downloads Music Pictures

    • mkdir (Make Directory):“给我造个新窝!”

      • 我们来为我们的C++学习创建一个专属文件夹。

      $ mkdir cpp_journey

    • cd (Change Directory):“走,去那儿!”

      • 进入我们刚创建的文件夹。

      $ cd cpp_journey
      $ pwd # 再确认一下位置
      /home/your_username/cpp_journey

    恭喜!你已经掌握了在文件系统中“瞬间移动”的能力!

    2.2 Vim编辑器:键盘流的“上古神器”

    Vim是一个纯键盘操作的文本编辑器。初见时可能觉得它很奇怪,但一旦熟悉,你的编码速度会起飞。

    Vim的“三步走”魔法,记住它就能完成80%的工作:

  • 打开/创建文件:vim 文件名

    • 我们在 cpp_journey 文件夹下,创建一个叫 hello.cpp 的文件。

    $ vim hello.cpp

    现在你进入了Vim的正常模式 (Normal Mode)。在这个模式下,你不能直接打字,按键会被当成命令。

  • 进入编辑模式:按一下 i 键

    • i 代表 Insert (插入)。按下后,左下角会出现 — INSERT — 字样。现在,你就可以像在记事本里一样,自由地输入代码了!
  • 保存并退出:

    • 首先,按 Esc 键,退出编辑模式,回到正常模式。
    • 然后,输入冒号 :,接着输入 wq,最后按回车。
      • w 代表 write (写入/保存)
      • q 代表 quit (退出)
      • :wq 就是 “保存并退出” 的意思。
  • 小贴士:如果玩坏了,想不保存就强制退出,可以按 Esc 后输入 :q!。这个 ! 就像在说:“我不管,就是要走!”

    2.3 g++编译器:你的代码“翻译官”

    你写的C++代码(.cpp文件),计算机是看不懂的。它只懂0和1组成的机器码。g++ 就是一个伟大的“翻译官”,它能把你的代码翻译成计算机能执行的文件。

    检查一下你的“翻译官”在不在:

    $ g++ –version

    如果显示出一大堆版本信息,说明它已经就位。如果没有,就用下面这条命令请它出山(需要输入你的系统密码):

    $ sudo apt-get update
    $ sudo apt-get install g++

    sudo 就像是在说:“我是管理员,我说了算!”


    3. 宇宙第一定律:Hello, World!

    环境就绪,万事俱备!现在,让我们写下编程世界的开篇诗篇。

    第一步:用Vim编写代码

    $ cd ~/cpp_journey # 确保在我们的工作目录
    $ vim hello.cpp

    第二步:按 i 进入插入模式,输入以下代码

    // 这是我的第一个C++程序
    #include <iostream>

    int main() {
    // 在屏幕上打印 "Hello, C++ World!"
    std::cout << "Hello, C++ World!" << std::endl;

    return 0; // 告诉系统,程序圆满结束
    }

    第三步:按 Esc,输入 :wq 保存退出

    第四步:召唤 g++ 翻译官进行编译

    $ g++ hello.cpp -o hello

    • g++ hello.cpp:告诉编译器去翻译 hello.cpp 文件。
    • -o hello:-o 是 output (输出) 的意思,表示请把翻译好的可执行文件命名为 hello。如果不加这个,默认会生成一个叫 a.out 的文件。

    编译成功后,ls 一下,你会发现多了一个绿色的、名为 hello 的文件。它就是我们程序的“真身”!

    第五步:运行你的程序!

    $ ./hello

    • ./ 表示“当前目录下”,./hello 就是运行当前目录下的 hello 程序。

    终端上会立刻显示:

    Hello, C++ World!

    🎉🎉🎉 恭喜你!你已经正式成为一名程序员了!🎉🎉🎉

    代码逐行解剖:

    • #include <iostream>:引入工具箱。iostream 是一个包含了输入(input)和输出(output)功能的“工具箱”。cout 这个工具就放在里面。
    • int main():程序的唯一入口。操作系统运行你的程序时,会先找 main 函数,从这里开始执行。一个程序只能有一个 main 函数,就像一栋房子只有一个正门。
    • { … }:函数的地盘。花括号里的所有内容,都属于 main 函数。
    • std::cout << "…" << std::endl;:输出指令。
      • std::cout 是“标准输出流”,你可以把它想象成一个连接到屏幕的“大喇叭”。
      • << 是“流插入运算符”,像个传送带,把右边的东西送到左边的 cout 喇叭里播放出去。
      • std::endl 是一个特殊指令,表示“换个行,然后刷新一下”。
    • return 0;:汇报工作。向操作系统报告:“报告老板,任务圆满完成,一切正常!” 返回 0 是一个约定俗成的成功信号。
    • // …:注释。这两行是写给你自己和别人看的,编译器会直接忽略它们。我们稍后会详细讲。

    4. C++的“基本积木”:变量与数据类型

    程序光会打招呼可不够,它得能记住东西。变量 (Variable) 就是程序用来存放数据的“小盒子”。

    每个盒子都有类型,规定了它能装什么东西,以及盒子有多大。

    类型名字能装啥例子
    int integer 整数 int age = 18;
    double double-precision 小数(浮点数) double price = 19.99;
    char character 单个字符 char grade = 'A'; (注意是单引号)
    bool boolean 真或假 bool is_handsome = true;
    std::string string 一串字符(字符串) std::string name = "卷王"; (注意是双引号)

    实践一下:
    创建一个新文件 variables.cpp,把你的个人信息存起来。

    #include <iostream>
    #include <string> // 使用string需要这个头文件

    int main() {
    // 声明并初始化变量
    std::string name = "C++小萌新";
    int age = 1;
    double height = 1.75; // 单位:米
    char gender = 'M';
    bool is_learning = true;

    // 把这些信息打印出来
    std::cout << "姓名: " << name << std::endl;
    std::cout << "年龄: " << age << "岁" << std::endl;
    std::cout << "身高: " << height << "米" << std::endl;
    std::cout << "性别: " << gender << std::endl;
    std::cout << "正在学习C++吗? " << is_learning << std::endl; // bool会打印出 1 (true) 或 0 (false)

    return 0;
    }

    编译运行:

    $ g++ variables.cpp -o vars
    $ ./vars

    看看输出是不是你的个人信息?


    5. 与程序互动:标准输入与输出

    你的程序现在会“说”了,我们再教它怎么“听”。

    • std::cout 是输出(说)。
    • std::cin 是输入(听)。

    cin (see-in) 使用 >> 运算符,方向和 cout 相反,表示把从键盘输入的数据“灌”进变量里。

    示例:一个会聊天的机器人
    创建 chat.cpp:

    #include <iostream>
    #include <string>

    int main() {
    std::string user_name;
    int user_age;

    std::cout << "你好! 我是你的AI助手,请问你叫什么名字呀? " << std::endl;
    std::cin >> user_name; // 等待用户输入名字,并存入user_name

    std::cout << "哇," << user_name << ",真是个好名字!你今年多大了呢?" << std::endl;
    std::cin >> user_age; // 等待用户输入年龄,并存入user_age

    std::cout << "酷!" << user_age << "岁正是学习编程的黄金年龄!加油哦!" << std::endl;

    return 0;
    }

    编译运行,和它聊聊看!

    偷懒的艺术:using namespace std;

    你可能已经注意到了,每次用 cout, cin, string, endl 都要在前面加上 std::,好麻烦!std 是 standard (标准) 的缩写,表示这些工具都来自C++的“标准库命名空间”。

    命名空间 (Namespace) 就像一个姓氏。张家的“三”叫张三,李家的“三”叫李三,可以避免重名冲突。std::cout 就是“std”家的cout。

    如果我们确定今天只和“std”一家人打交道,就可以在程序开头声明一下:

    #include <iostream>
    #include <string>

    using namespace std; // 声明:接下来没写姓的,都默认是std家的

    int main() {
    string name;
    cout << "请输入你的名字: "; // 看,不用写std::了
    cin >> name;
    cout << "你好, " << name << "!" << endl;
    return 0;
    }

    这样是不是清爽多了?

    导师提醒:在大型项目中,为了避免命名冲突,不推荐在头文件中使用 using namespace std;。但在我们现在的小练习中,为了方便,大胆用!


    6. 成为有“素质”的程序员:注释

    注释是写给“人”看的,不是给机器看的。 几个月后,当你回头看自己写的代码,你会感谢今天写下注释的自己。

    两种注释方式:

  • 单行注释 //

    • 从 // 开始,直到这一行结束,都是注释。

    // 这是一个单行注释,用来解释下面这行代码的作用
    int a = 10;

  • 多行注释 /* … */

    • /* 和 */ 之间的所有内容,不管多少行,都是注释。

    /*
    这是一个多行注释。
    通常用来写一些比较详细的说明,
    比如函数的用途、作者信息等等。
    作者:卷王导师
    日期:2024-01-01
    */

    int b = 20;


  • 总结与小贴士

    呼!第一天信息量有点大,但你坚持下来了!我们来回顾一下:

    • 你认识了C++,你的新朋友。
    • 你学会了用ls, cd, mkdir在Linux里“横行霸道”。
    • 你用Vim写下了神圣的Hello, World!。
    • 你用g++编译并运行了它,感受到了创造的乐趣。
    • 你学会了用变量存东西,用cin和cout和程序聊天。

    卷王小贴士:
    编程遇到问题是100%会发生的事,尤其是编译错误。不要怕那满屏的红色报错信息。仔细读第一行错误,它通常会告诉你哪一行(比如 hello.cpp:5:10:)出了什么问题(比如 missing a semicolon ';' 缺少分号)。解决它,你会获得巨大的成就感!


    ✍️ DAY 1 作业

  • 个人名片生成器:
    • 编写一个程序 my_card.cpp。
    • 程序依次询问用户的 姓名(string)、城市(string) 和 幸运数字(int)。
    • 最后,程序将这些信息格式化输出,类似下面这样:********************
      * 姓名: 张三
      * 城市: 北京
      * 幸运数字: 8
      ********************

  • 温度转换器:
    • 编写一个程序 temp_converter.cpp。
    • 程序提示用户输入一个摄氏度(Celsius)温度(可以是小数,所以用 double 类型)。
    • 程序计算出对应的华氏度(Fahrenheit)温度并输出。
    • 转换公式:F = C * 9.0 / 5.0 + 32。(注意:要用 9.0 / 5.0 而不是 9 / 5,否则整数相除会丢失精度!)

  • 💡 作业答案与解析

    1. 个人名片生成器

    文件:my_card.cpp

    #include <iostream>
    #include <string>

    // 使用std命名空间,简化代码
    using namespace std;

    int main() {
    // 声明需要的变量
    string name;
    string city;
    int lucky_number;

    // 提示并获取用户输入
    cout << "欢迎使用个人名片生成器!" << endl;
    cout << "请输入您的姓名: ";
    cin >> name;

    cout << "请输入您所在的城市: ";
    cin >> city;

    cout << "请输入您的幸运数字: ";
    cin >> lucky_number;

    // 格式化输出
    cout << "\\n— 这是您的专属名片 —" << endl; // \\n也是一个换行符
    cout << "********************" << endl;
    cout << "* 姓名: " << name << endl;
    cout << "* 城市: " << city << endl;
    cout << "* 幸运数字: " << lucky_number << endl;
    cout << "********************" << endl;
    cout << "————————" << endl;

    return 0;
    }

    编译与运行:

    $ g++ my_card.cpp -o my_card
    $ ./my_card

    运行示例:

    欢迎使用个人名片生成器!
    请输入您的姓名: 卷王
    请输入您所在的城市: 上海
    请输入您的幸运数字: 666

    — 这是您的专属名片 —
    ********************
    * 姓名: 卷王
    * 城市: 上海
    * 幸运数字: 666
    ********************
    ————————

    2. 温度转换器

    文件:temp_converter.cpp

    #include <iostream>

    using namespace std;

    int main() {
    // 声明变量,使用double以支持小数
    double celsius;
    double fahrenheit;

    // 提示用户输入
    cout << "请输入摄氏度温度: ";
    cin >> celsius;

    // 根据公式进行计算
    // 使用9.0和5.0确保是浮点数除法,结果更精确
    fahrenheit = celsius * 9.0 / 5.0 + 32;

    // 输出结果
    cout << "您输入的摄氏度 " << celsius << "°C" << endl;
    cout << "转换为华氏度是 " << fahrenheit << "°F" << endl;

    return 0;
    }

    编译与运行:

    $ g++ temp_converter.cpp -o temp_converter
    $ ./temp_converter

    运行示例:

    请输入摄氏度温度: 25.5
    您输入的摄氏度 25.5°C
    转换为华氏度是 77.9°F

    点个赞和关注,更多知识包你进步,谢谢!!!你的支持就是我更新的最大动力

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 重生之我在10天内卷赢C++ - DAY 1
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!