c++标准库iostream

我们学习c的时候也频繁用到了一些库,但是库并不多,c++也有库,且比c要多,通常越高级的语言库越多,如java、python等封装越严重的语言库就更多,在学习高级语言时学习库占比变得很重,如python我们学习完他的语法才算刚刚入门,后面的提高就是库的应用。一个典型的c程序(后缀.c)可以完全被视为c++程序来编译。在c++的编译器中自动定义了一个long int型__cplusplus(双下划线)变量用来存放当前c++的版本,而c没有该变量,所以c程序可以使用宏来判断是否有定义__cplu...
摘要由CSDN通过智能技术生成

        我们学习c的时候也频繁用到了一些库,但是库并不多,c++也有库,且比c要多,通常越高级的语言库越多,如java、python等封装越严重的语言库就更多,在学习高级语言时学习库占比变得很重,如python我们学习完他的语法才算刚刚入门,后面的提高就是库的应用。一个典型的c程序(后缀.c)可以完全被视为c++程序来编译。在c++的编译器中自动定义了一个long int型__cplusplus(双下划线)变量用来存放当前c++的版本,而c没有该变量,所以c程序可以使用宏来判断是否有定义__cplusplus符号来判断当前是c还是c++的编译环境。

        c++的源文件名的常用扩展名有.cpp .cxx .cc .c .c++,头文件有.hpp .hxx .h。由此可见c++是一个c的超集, c++完全兼收了c的语法特性和标准库,所以c++编译器完全可以正常编译一个c程序。

        虽然c++程序可以支持c形式包含头文件的方式并直接使用库中的函数,如stdio.h,他并不是源生支持,而是这是c++做了很多额外工作,来兼容的。所以c++并不建议我们以c的写法去包含原来c的头文件,而是推荐使用c++的库,如<cstdio>来代替<stdio.h>,没错没有扩展名,在c++中所有的标准库都没有后缀扩展名,如.h。

        ubuntu中gcc的工具链的头文件在/usr/include 在当前目录下还有一个c++的文件夹,存放的全是g++工具链的头文件。

iostream引用

iostream是c++的常用标准库之一,内部包含了很多我们常用的函数,为了防止库与我们自定义的名称冲突,所以他也使用了命名空间,封装的命名空间名称为std。std的声明在iostream头文件中,与众不同的是这个头文件的包含不需要.h,直接#include<iostream>头文件即可,既然是命名空间,那么我们要使用std命名空间的元素,如cout就需要std::cout。由于对该头文件内的东西频繁使用,所以我们一般,直接将整个命名空间进行声明如:

using namespace std;        //声明库中的命名空间,
cout << “hell word” << endl  //调用其内部元素cout

标准输出cout

        cout标准输出,对应stdout,在std命名空间中。结合 <<(流操作)进行输出,可多节连接。cout涉及的头文件有<iostream> <iomanip>,iostram还生了两个儿子就是ostram(输出)和istram(标准输入),iomanip内部是一些格式化,如输入输出的对齐。

        cout本质上是ostream(iostream派生类)的一个对象,暂时我们先将类简单理解成类型,对象理解成变量。也就是说cout其实是在iostream中事先定义的一个变量。

        操作符 << 本质上是c语言中的左移,在iostream中进行了运算符重载(把符号功能进行了重新定义)。

示例:
int val=8;
cout << “hello word” << val << endl

        我们可以把cout看成是一个输出设备,把<<看成箭头,大概意思就是把字符串按箭头方向送到cout设备即可实现输出。endl与cout一样都是std命名空间中的一个对象,我们可简单的把他理解成是\n\r的一个替代。实际上我们同样可以就就写<</n,但是这是c的语法,我们在c++中一般不用。val是一个我们要输出值的变量。多个<<符号可以进行级联。

流操作格式化

流操作格式化一般使用“流操作算子”,常用的操作符见下表,他们都是在iomanip头文件中,要使用必须包含该头文件。

流操纵算子

作  用

dec(默认)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值