CppStudio logo CppStudio
首页 / 教程 / 第3课

C++ 程序可视化教程 · 第3课 · 第一章 程序

#include 头文件是什么?为什么程序开头都要写它

#include 的作用是引入已写好的功能。cout、cin 并非语言内置,而是标准库头文件提供的: 使用 cout 之前必须 #include <iostream>,使用 string 之前必须 #include <string>。 头文件集中在程序开头,编译器才知道这些名字的来源。

头文件是什么

C++ 语言本身很小,常用能力——输入输出、字符串、数学函数、容器——都由标准库提供。标准库按功能划分为若干头文件,每个头文件是一类功能的说明书:

头文件 提供的功能
<iostream> cout 输出、cin 输入
<string> string 字符串
<cmath> sqrt、pow 等数学函数
<vector> vector 动态数组(后续章节学习)

#include <iostream> 的含义:把 iostream 这份说明书交给编译器,此后代码中出现 cout,编译器能查到它的定义。

为什么集中在文件开头

#include 在编译之前处理:预处理器把头文件内容展开到该指令所在位置。顺序因此重要——必须先有说明书,后续代码才能使用说明书中的名字。行业惯例:所有 #include 集中放在文件顶部。

本课示例包含了两个头文件:

#include <iostream>
#include <string>
using namespace std;

int main() {
    string name = "CppStudio";
    cout << "你好," << name << endl;
    return 0;
}

string 来自 <string>cout 来自 <iostream>。删除 #include <string> 再运行,编译器会报 use of undeclared identifier 'string'——这是缺少说明书的直接后果。

尖括号与引号

入门阶段的程序都是单文件,只涉及尖括号形式;多文件工程出现在后续阶段。

常见错误

下一课:using namespace std 这行代码究竟做了什么。

在 CppStudio 里打开本课示例,亲手运行 →

常见问题

#include <iostream> 里的 iostream 是什么?

iostream 是 C++ 标准库的头文件,提供输入输出功能,cout 和 cin 都由它提供。名称是 input-output-stream(输入输出流)的缩写。

尖括号 <> 和引号 "" 有什么区别?

尖括号用于标准库头文件,编译器到标准库目录查找;引号用于你自己编写的头文件,编译器先在项目目录查找。入门阶段几乎都使用尖括号。

#include 是不是把文件复制进来?

可以这样理解:预处理器在编译前把头文件内容展开到

忘记

编译器报 use of undeclared identifier(未声明的标识符),例如不认识 cout。看到某个名字「未声明」,首先检查对应的头文件是否已包含。

陕ICP备2026020640号-1