首页
社区
课程
招聘
[分享]C++基础三-输入输出
2021-8-20 18:50 5289

[分享]C++基础三-输入输出

2021-8-20 18:50
5289

输入输出的概念

程序的输入指的是从输入文件将数据传送给程序,程序的输出指的是从程序将数据传送给输出文件。C++的输入输出包含以下三个方面:

  • 对系统指定的标准设备的输入和输出。即从键盘输入数据,输出到显示器屏幕。这种输入输出称为标准的输入输出,简称标准I/O。
  • 以外存磁盘文件为对象进行输入和输出,即从磁盘文件输入数据,数据输出到磁盘文件。以外存文件为对象的输入输出称为文件的输入输出,简称文件I/O。
  • 对内存中指定的空间进行输入和输出,通常指定一个字符数组作为存储空间。这种输入和输出称为字符串输入输出,简称串I/O。

在C语言中,使用printf和scanf进行输入输出,往往不能保证所输入输出的数据是可靠的安全的。在C++的输入输出中,编译系统对数据类型进行严格的检查,凡是类型不正确的数据都不可能通过编译。因此C++的I/O操作是类型安全(type safe)的。C++的I/O操作是可扩展的,不仅可以用来输入输出标准类型的数据,也可以用于用户自定义类型的数据。

C++ 的输入输出

1
2
3
4
5
6
7
8
9
#include <iostream>
using namespace std;
int main()
{
    int nNum = 0;
    cin>>nNum;
    cout<<"test cout"<<nNum<<endl;
    return 0;
}

在编写C++程序时,使用输入输出需要包含头文件iostream,它包含了用于输入输出的对象,例如常见的cin表示标准输入、cout表示标准输出、cerr表示标准错误。
使用cin进行输入时需要紧跟>>运算符,使用cout进行输出时需要紧跟<<运算符,这两个运算符可以自行分析所处理的数据类型,因此无需像使用scanf和printf那样给出格式控制字符串。其中endl表示换行,与C语言里的\n作用相同。
cin和cout都是C++的内置对象,不是关键字。C++库定义了大量的类,cin和cout分别是istream和ostream类的对象,它们是由标准库的开发者提前创建好的,可以直接拿来使用,这种在C++中提前创建好的对象称为内置对象。

格式化输出

使用控制符控制输出格式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
int main()
{
    //以八进制、十进制、十六进制输出整数
    int nNum = 99;
    cout << "oct=" << oct << nNum << endl;
    cout << "dec=" << dec << nNum << endl;
    cout << "hex=" << hex << nNum << endl;
    //将浮点数分别以整型,单(双)精度浮点,科学表示法输出
    float fNum = 123.456f;
    cout << "dec=" << dec << fNum << endl;
    cout << "fixed=" << fixed << fNum << endl;
    cout << "scientific=" << scientific << fNum << endl;
 
    return 0;
}

使用流对象的成员函数控制输出格式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
using namespace std;
int main()
{
    //以八进制、十进制、十六进制输出整数
    //成员函数unsetf用来终止原来设置的状态,ios::basefield表示进制
    int nNum = 99;
    cout.setf(ios::oct, ios::basefield);
    cout << "oct=" << nNum << endl;
    cout.setf(ios::dec, ios::basefield);
    cout << "dec=" << nNum << endl;
    cout.setf(ios::hex, ios::basefield);
    cout << "hex=" << nNum << endl;
    cout.unsetf(ios::hex);
 
    //将浮点数分别以整型,单(双)精度浮点,科学表示法输出
    float fNum = 123.456f;
    cout.setf(ios::oct);
    cout << "oct=" << fNum << endl;
    cout.unsetf(ios::oct);
    cout.setf(ios::fixed);
    cout << "fixed=" << fNum << endl;
    cout.unsetf(ios::fixed);
    cout.setf(ios::scientific);
    cout << "scientific=" << fNum << endl;
    cout.unsetf(ios::scientific);
 
    return 0;
}

流成员函数setf括号中的参数表示格式状态,它是通过格式标志来指定的。格式标志在类ios中被定义为枚举值。因此在引用这些格式标志时要在前面加上类名ios和域运算符“::”。

github:https://github.com/0I00II000I00I0I0

bilibili:https://space.bilibili.com/284022506


[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
点赞1
打赏
分享
最新回复 (1)
雪    币: 179
活跃值: (264)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
lanxz 2021-8-21 20:56
2
0
cin和cout分别是istream和ostream类的对象
游客
登录 | 注册 方可回帖
返回