C++新手入门——从头开始学代码:(C++编程时的头文件和C的区别)&&(头文件#include<iostresm>)概述

目录

前言

1.C语言的头文件

1.1 文件包含命令

1.2 文件包含命令的格式

1.3 文件包含处理过程

2. C++头文件与C头文件的区别

2.1 带后缀头文件的使用

2.2 不带后缀的头文件的使用

3. 标准输入输出头文件iostream


前言

在一组代码开始时,我们总是会先写上: 

#include<iostream>

大家都知道如果不写上这个文件,代码就无法运行,但是我们为什么要以这样的方式开始一段代码呢?由于C++是由C发展而来的语言,我们先从C的头文件概念入手。

1.C语言的头文件

#include 英文意为包含,后面会接上一个用"   "或者<   >括起来的文件,我们称这样的操作为:文件包含命令。

1.1 文件包含命令

文件包含命令的定义:①文件包含是指一个源文件可以将另一个源文件全部内容包含进来。②文件包含命令可以将多个模块共用的数据(如符号常量和数据结构)或函数集中到一个单独的文件中。

简单来说,只要使用了#include命令,就能获得别的已经编辑好的文件里的数据和函数了。

1.2 文件包含命令的格式

【格式一】#include "文件名"

系统首先到当前源文件所在的目录查找被包含文件,如果没有找到,再到系统指定的 “包含文件目录” 去查找,必要时在文件名前加上所在的路径。

比如我们在VS编程中,可以看到有头文件和源文件,在这点击创建头文件.h和源文件.c/.cpp,他们就会被放在同一目录下,故我们在自己编写的源文件里引用自己编写的头文件用的格式为#include"  "(后面无须加分号)

【格式二】#include <文件名>
直接到系统指定的 “包含文件目录” 去查找。

1.3 文件包含处理过程

文件包含操作是编译预处理命令,用来指示编译器在对程序进行预处理时将被包含文件文件的代码嵌入到程序中该指令所在的地方。

也可以说:预编译时,用被包含文件的内容取代文件包含命令,再将 “包含” 后的文件作为一个源文件单位进行编译,得目标文件 .obj。

2. C++头文件与C头文件的区别

由于C++是从C语言发展而来的,为了与C兼容,C++保留了C语言中的一些规定。例如,在C语言中头文件用".h"作为后缀,如stdio.h、math.h等。为了与C语言兼容,许多C++早期版本的编译系统头文件都是“∗.h”形式,如iostream.h等。但后来ANSIC++建议头文件不带后缀“.h”。

近年推出的C++编译系统新版本则采用了C++的新方法,头文件名不再有“.h”扩展名。如采用iostream、cmath等,但为了使原来编写的C++程序能够运行,在程序中既可以选择使用旧版本的带后缀“.h”的头文件也可以使用新的不带后缀“.h”的头文件。

可以看到,编译软件并没有报错。

2.1 带后缀头文件的使用

在C语言程序中头文件包括后缀“.h”,如stdio.h , string.h等。由于C语言没有命名空间(关于命名空间,会在后面几期的博客提到),头文件不存放在命名空间中,因此在C++程序中,如果使用带后缀“.h”的头文件,不必用命名空间。

只需在文件中包含所用的头文件即可。如:
#include< stdio.h>
 

2.2 不带后缀的头文件的使用

C++标准要求系统提供的头文件不包括后缀“.h”,例如string , iostream。为了表示C++与C语言的头文件既有联系又有区别,C++所用的头文件不带后缀字符“.h”,而是在C语言的相应的头文件名之前加上前缀字符c

例如,C语言中的头文件 stdio. h,在C+中相应的头文件名为cstdio。C语言中的头文件 string.h,在C++中相应的头文件名为cstring。
使用C+中不带后缀的头文件时,需要在程序中声明命名空间std。如:

#include<cstdio>      //相当于c程序中的#include<stdio.h>
#include<cstring>     //相当于c程序中的#include<string.h>
using namespace std;  //声明使用命名空间std

使用头文件的两种方法是等价的,可以任意选用。但使用带后缀的头文件时,不需要在程序中声明命名空间std。
 

3. 标准输入输出头文件iostream

iostream是C++系统定义的一个头文件,在这个文件中声明了程序所需要的输入和输出操作的有关信息。流对象cin , cout 及运算符“<<” “>>”的定义,均包含在文件iostream中。由于这类文件常被嵌入在程序开始处,所以称为头文件。

我们可以将iostream拆分为两个部分。

-io部分:i表示input输入,o表示output输出;

-stream部分:流对象。(可以理解为一个操作对象,以后会详细介绍)

  • 25
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值