C++标准输入流

C++标准输入流

开发工具与关键技术:C++、VisualStudio
作者:何任贤
撰写时间:2019年07月06日
C++程序中,对数据的输出输入是以字节流实现的, 应用程序对字节序列作
出各种数据解释, I/O系统的任务就是在内存和外部设备之间稳定可靠地传
输数据和解释数据。

流类对象可以建立和删除,可以从流中获取数据和向流添加数据,c++的输出流都是以字节形式进行数据传递。
c++中我们常用的是标准流,标准流是C++预定义的对象,提供内存与外部设备进行数据交互功能,流的操作是流类的公有成员函数。
我们在操作标准流的时候一般是用到iostream.h头文件,它包含所有的标准输入流操作。
流库(stream library)是用继承方法建立的输入输出类库, 流库具有两个平行的基类:streambuf 和 ios 类,所有流类均以两者之一作为基类,意思是c++中所有输出输入流的基类都是streambuf 和 ios 类,而标准流的基类就是ios类。
标准输入流关键字是cin是istream 类的对象,而istream 类则是在iostream.h头文件中所以我们在使用标准流是需要包含iostream.h头文件,一般情况下连接键盘,cin重定向方法:把程序编译成 .exe文件,在 DOS 状态下以命令参数形式对标准流重定向。
istream类的公有成员函数,即输入流操作:
函数 功能
read() 无格式输入指定字节数
get() 从流中提取字符,包括空格
getline() 从流中提取一行字符
ignore() 提取并丢弃流中指定字符
peek() 返回流中下一个字符,但不从流中删除
gcount() 统计最后输入的字符个数

而输入流的标志字,即标志常量有:

状态标志 值 含义
skipws 0X0001 跳过输入中的空白
dec 0X0010 转换基制为十进制
oct 0X0020 转换基制为八进制
hex 0X0040 转换基制为十六进制

下面是对上面的一些函数和标志字的演示:

#include
using namespace std;
void main()
{
char b;
char c[15] = {0};
int d = 0;
d = cin.peek();
cout << “peek函数:” << d << “\n”;
cin.get(b);
cout << “get函数:” << b << “\n”;
cin.ignore(5);
d = cin.peek();
cout << “peek函数:” << d << “\n”;
cin >> c;
cout << “ignore函数:” << c << “\n”;
d = cin.gcount();
cout << “gcount函数:” << d << “\n”;
cin.setf(ios::oct, ios::basefield); cin >> d;
cout << “oct标志字” << d << “\n”;
cin.setf(ios::hex, ios::basefield); cin >> d;
cout << “hex标志字” << d << “\n”;
}
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值