“#include <iostream>”是做什么的?

40

当我开始学习基本的C++时,我一直使用这些标题

#include <iostream>
using namespace std;

我想询问iostream的意义。它是否每次都需要作为头文件?


3
不,除非你想要从/写入流中获取或写入某些东西。 - Mahesh
什么是流? - Shadrack Kibet
4个回答

49
为了读取或写入标准输入/输出流,您需要将其包含在内。
int main(int argc, char * argv[])
{
    std::cout << "Hello, World!" << std::endl;
    return 0;
}

那个程序如果没有添加 #include <iostream> 就无法编译。
第二行不是必需的:
using namespace std;

这告诉编译器,std 命名空间中定义的符号名称将被引入程序的作用域,因此您可以省略命名空间限定符,并编写例如:
#include <iostream>
using namespace std;

int main(int argc, char * argv[])
{
    cout << "Hello, World!" << endl;
    return 0;
}

注意,您不再需要使用完全限定名std :: cout引用输出流,可以使用较短的名称cout。
我个人不喜欢将头文件的所有符号都引入命名空间中...我会单独选择要缩短的符号...所以我会这样做:
#include <iostream>
using std::cout;
using std::endl;

int main(int argc, char * argv[])
{
    cout << "Hello, World!" << endl;
    return 0;
}

但这是个人偏好的问题。


15

这是一个与输入输出流相关的C++标准库头文件。它包含了从流中读写数据的功能。只有在需要使用流时才需要包含它。


12

# 表示以下行是预处理指令,应在编译器进行编译之前由预处理器进行处理。

所以,#include 是一个预处理指令,告诉预处理器将头文件包含在程序中。

< > 指示要包含的文件名的起始和结束。

iostream 是一个包含输入/输出操作函数(cincout)的头文件。

现在来总结一下该命令的C++到英语翻译:#include <iostream> 是:

亲爱的预处理器,请在编译器开始实际编译代码之前,将头文件 iostream 的内容全部包含在这个程序的开头。


1
#include 指定的文件在 #include 的位置进行插入,而不是在文件开头插入。 - CSM
要非常详细地解释一下:在包含头文件时,尖括号和双引号有什么区别。同时请注意:https://dev59.com/5nA75IYBdhLWcg3wrrJS - nayana

0

#include 是用来包含输入和输出操作函数(cin 和 cout)的。


1
你的回答可以通过提供更多支持性信息来改善。请编辑以添加进一步的细节,例如引用或文献,以便其他人可以确认你的回答是正确的。你可以在帮助中心找到有关撰写良好答案的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接