初探C++标准库

初探C++标准库

1 C++标准环境的组成

image.png

2 C++的头文件

  1. C++是在C语言的基础上开发的,早期的C++还不完善,不支持命名空间,没有自己的编译器,而是将C++代码翻译成C代码,再通过C编译器完成编译。这个时候的C++仍然使用C语言的库<stdio.h><stdlib.h><string.h>等头文件依然有效,此外C++也开发了一些新的库,增加了自己的头文件,例如<iostream.h><fstream.h><complex.h>,和C语言一样,C++头文件仍然以 .h 为后缀,它们所包含的类、函数、宏等都是全局范围的。
  2. 后来C++引入了命名空间的概念,计划重新编写库,将类、函数、宏等都统一纳入一个命名空间,这个命名空间的名字就是std, std是standard的缩写含义是“标准命名空间”
  3. 但是这个时候已经有很多老式C++开发的程序了,它们的代码中并没有使用命名空间,直接修改原来的库会带来一个很严重的后果,程序员会因为不愿意花费大量时间修改老式代码而极力反抗,拒绝使用新标准的C++代码。
  4. C++开发人员想了一个好办法,保留原来的库和头文件,它们再C++中可以继续使用,然后再把原来的库复制衣服呢,在此基础上稍加修改,把类、函数、宏等纳入命名空间std下,就成了C++标准库。这样共存了两份功能相似的库,使用了老式C++的程序可以继续使用原来的库,新开发的程序可以使用新版的C++库。
  5. 为了避免头文件重名,新版C++库也对头文件的命名做了调整,去掉了后缀.h,所以老式C++的iostreadm.h变成了iostream,fstream.h变成了fstream
  6. 对于原来C语言的头文件,也采用同样的方法,但在每个名字前还要添加一个c字母,所以C语言的stdio.h变成了cstdio,stdlib.h变成cstdlib
  7. 需要注意的是,旧的 C++ 头文件是官方所反对使用的,已明确提出不再支持,但旧的C头文件仍然可以使用,以保持对C的兼容性。实际上,编译器开发商不会停止对客户现有软件提供支持,可以预计,旧的 C++ 头文件在未来数年内还是会被支持。
#include<cstdio>
int main(int argc, const char* argv[])
{
    //printf("hello world\n");
    std::printf("hello world\n");
    return 0;
}

虽然 C++ 几乎完全兼容C语言,C语言的头文件在 C++ 中依然被支持,但 C++ 新增的库更加强大和灵活,请读者尽量使用这些 C++ 新增的头文件,例如 iostream、fstream、string 等。

#include<iostream>
using namespace std;
int main(int argc, const char *argv[])
{
    cout << "hello world" << endl;
    return 0;
}

3 C++输入输出

  1. 简单的输入输出代码示例
#include<iostream>
using namespace std;
int main(int argc, const char *argv[])
{
    int i_x;
    float f_y;
    cout << "input i_x  :" ;
    cin >> x;
    cout << "input f_y :"
    cin >> y;
    cout << "int number x = " << x << endl << "float number y = " << y << endl;
    return 0;
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值