C++ IO基础
一:c++I/O处理,按照数据输入输出的过程,形象的将其看做流。数据在流中进行传播。
所有的流有两个基类:ios和streambuf类
streambuf:提供对缓冲区的基本操作,设置缓冲区等
ios:记录流的状态,支持对streambuf的输入/输出的格式化/非格式化操作。
istream和ostream的操作:
istream
1:>> : 返回的是引用,所以可以连续使用。
int a,b,c;
cin >> a >> b >> c;
2:cin.get() : 读取单个字符,返回ASCII码 。
char ch;
ch = cin.get();
3:cin.get(char &):读取单个字符,返回一个istream对象的引用。
char ch1,ch2;
cin.get(ch1).get(ch2);
cout << ch1 << " " << ch2 << endl;
4:cin.getline():读取一行,直到遇到\0,与>>的不同点在于>>遇到空格,制表符等就会结束。下面的两个getline是不一样的。
char string[256];
std::cin.getline(string,sizeof(string));
std::string name;
std::getline(std::cin,name);
5:cin.read(buf,len):len是读取的长度,包括空白字符也会被读
char buf[10];
std::cin.read(buf,5); //只会读取五个字符
ostream
1:<<:返回一个ostream对象的引用,所以可以连续使用。
int n1 = 100;
int n2 = 200;
cout << n1 << " " << n2 << endl;
2:cout.put() :输出单个字符,返回引用。
cout.put('A');
cout.put('B').put('C');
cout << 'A' << 'B' << 'C';
3:cout.write(buf,len):返回一个ostream的引用
char buf[] = "abcde";
cout.write(buf,5);
istringstream
来自于istream,提供读写string的功能。它能以空格将一个字符串分开。
#include<iostream>
#include<sstream>
using std::cout;
using std::cin;
using std::endl;
int main(int argc,char *argv[])
{
std::string line;
std::string word;
while(std::getline(cin,line)) {
std::istringstream iss(line);
while(iss >> word) {
cout << word << "#";
}
cout << endl;
}
return 0;
}
ostringstream
和istringstream相似,下面是将double转换成string类型:
#include<iostream>
#include<sstream>
using std::cout;
using std::cin;
using std::endl;
std::string doubletostr(double val)
{
std::ostringstream oss;
oss << val;
return oss.str();
}
int main(int argc,char *argv[])
{
double val = 55.55;
std::string str = doubletostr(val);
cout << str << endl;
return 0;
}
二:在<iostream>中定义了和cin以及cout作用类似的运算符有:
endl:输出时插入换行符并且刷新流。
endls:输出时在字符插入NULL作为尾符。
flush:刷新缓冲区
ws:输出时略去空白符
dec:令io数据按十进制格式输出
hex:令io数据按十六进制格式
oct:令io数据按照八进制格式
#include<iostream>
using std::cout;
using std::cin;
using std::endl;
int main(int argc,char *argv[])
{
int a;
cin >> a;
cout << std::hex << a << endl;
return 0;
}
C++ IO基础的更多相关文章
- java IO基础操作
java IO基础,通熟易懂,好久没复习java 基础了.这里是传送门... http://www.cnblogs.com/nerxious/archive/2012/12/15/2818848.ht ...
- 归纳从文件中读取数据的六种方法-JAVA IO基础总结第2篇
在上一篇文章中,我为大家介绍了<5种创建文件并写入文件数据的方法>,本节我们为大家来介绍6种从文件中读取数据的方法. 另外为了方便大家理解,我为这一篇文章录制了对应的视频:总结java从文 ...
- 总结java创建文件夹的4种方法及其优缺点-JAVA IO基础总结第三篇
本文是Java IO总结系列篇的第3篇,前篇的访问地址如下: 总结java中创建并写文件的5种方式-JAVA IO基础总结第一篇 总结java从文件中读取数据的6种方法-JAVA IO基础总结第二篇 ...
- 总结删除文件或文件夹的7种方法-JAVA IO基础总结第4篇
本文是Java IO总结系列篇的第4篇,前篇的访问地址如下: 总结java中创建并写文件的5种方式-JAVA IO基础总结第一篇 总结java从文件中读取数据的6种方法-JAVA IO基础总结第二篇 ...
- 总结java中文件拷贝剪切的5种方式-JAVA IO基础总结第五篇
本文是Java IO总结系列篇的第5篇,前篇的访问地址如下: 总结java中创建并写文件的5种方式-JAVA IO基础总结第一篇 总结java从文件中读取数据的6种方法-JAVA IO基础总结第二篇 ...
- Day16_92_Java IO 基础概念
Java IO 基础概念 流根据方向分为 输入流 和 输出流. 注意 : 输入和输出是相对与内存而言的,从内存出来就是输出,到内存中去就是输入. 输入叫做 "读" , 输出叫做 & ...
- IO基础内容(File)
JavaIO基础内容 IO技术概述 Output 把内存中的数据存储到持久化设备上这个动作称为输出(写)Output操作 Input 把持久设备上的数据读取到内存中的这个动作称为输入(读)Input操 ...
- IO(基础知识)
IO流类的构造方法决定是输入流还是输出流.输入流连接一个文件,它会将文件中的内容读到流里面,read方法是将流里面的内容 往外读.输出流连接一个文件,它的write方法,是将内存中的内 ...
- Socket.IO基础教程
什么是Socket.IO Socket.IO是一个库,可用于在浏览器和服务器之间进行实时,双向和基于事件的通信.它包括: 使Node.js服务器:来源 | API 为浏览器(可从Node.js的也运行 ...
- File与IO基础
IO流的作用:持久化到磁盘 File类的使用 File类基本概念 文件和文件夹都是用File类来表示. File类是内存层面的对象,内存中创建出来的File对象不一定有一个真实存在的文件或文件夹,但是 ...
随机推荐
- EasyExcel无法用转换器或者注解将java字段写入为excel的数值格式
需求: 在用easyExcel导出报表时,碰到需要将数据转换为数值or货币格式的需求 过程: 1.首先采取转换器的形式 @Override public CellData convertToExcel ...
- requests之POST请求
上一节我们讲了GET请求,今天我们来讲讲POST请求. 学习一个新的模块,其实不用去百度什么的,直接用 help 函数就能查看相关注释和案例内容.如图所示,就是我们今天需要学习的内容. 1.用上面给的 ...
- 关于zimbra的复现以及突破
Zimbra未登录RCE漏洞利用 首先我是根据这个PDF进行复现的,但是复现过程出现很多问题 首先使用这个XXE读取文件 <!DOCTYPE xxe [ <!ELEMENT name AN ...
- nodejs安装 及环境变量配置教程 超详细版
------------恢复内容开始------------ ------------恢复内容开始------------ 上篇文件 写到 遇到了两个棘手问题 : @终端进程启动失败: shell ...
- Python:raschii库计算任意阶数Stokes波
Stokes五阶波 最近发现一个很有用的Stokes波计算Python库,raschii官方说明,可以计算任意阶数,不同水深下的Stokes波,简单做了下测试,测试结果与脚本如下 Python 脚本 ...
- 数值计算:四阶龙格-库塔法 for 二阶微分方程
引言 考虑存在以下二阶偏微分方程 \[\begin{align} f_2 \cdot \ddot{X(t)}+f_1 \cdot \dot{X(t)} +f_0 \cdot {X(t)} =F(t) ...
- .NET 开发一个服务器 应用管理工具
一:背景 1.Anno.Deploy Anno.Deploy可以和 Anno集成使用,用于部署新的服务.启动服务.停止服务.清理服务.也可以单独使用,用于守护程序. 使用方法 1.和Anno集成使用 ...
- 订单峰值激增 230%,Serverless 如何为世纪联华降本超 40%?|双11 云原生实践
作者 | 朱鹏 导读:2020 年 双11,世纪联华基于阿里云函数计算 (FC) 弹性扩容,应用于大促会场 SSR.线上商品秒杀.优惠券定点发放.行业导购.数据中台计算等多个场景,业务峰值 QPS 较 ...
- typora博客笔记上传图片时不能显示
前言 markdown具有轻量化.易读易写等特性,并且对于图片.超链接.图片.数学公式都有支持. 但是最近在使用Typora的过程中我发现,在写文章笔记的时候导入的图片,因为图片保存在我们电脑本地,当 ...
- InstallSheild相关
一.关于使用InstallSheild制作安装包的总结. 1.定制化制作需要了解InstallScript语法,相关资料可以去网上查找,后续提供比较好的资料. 2.有些软件运行是需要一些环境的,譬如使 ...