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对象不一定有一个真实存在的文件或文件夹,但是 ...
随机推荐
- 『GoLang』反射
方法和类型的反射 反射是应用程序检查其所拥有的结构,尤其是类型的一种能.每种语言的反射模型都不同,并且有些语言根本不支持反射.Go语言实现了反射,反射机制就是在运行时动态调用对象的方法和属性,即可从运 ...
- 『Python』面向对象(二)
继承 继承的语法 class Animal(object): def __init__(self,name): self.__name = name class Dog(Animal): kind = ...
- 没想到 TCP 协议,还有这样的骚操作。。。
大家好,我是小林. 昨晚有位读者问了我这么个问题: 大概意思是,一个已经建立的 TCP 连接,客户端中途宕机了,而服务端此时也没有数据要发送,一直处于 establish 状态,客户端恢复后,向服务端 ...
- Java基础(七)——多线程
一.概述 1.介绍 Java VM 启动的时候会有一个进程Java.exe,该进程中至少有一个线程负责Java程序的执行.而且这个线程运行的代码存在于main方法中,该线程称之为主线程.其实从细节上来 ...
- JVM-对象的实例化,内存布局与访问定位
1.对象的实例化 提到对象的实例化,我们可能会想到几个问题.对象在JVM中是怎么存储的?对象里面有什么?接下来,我们就来探讨一下对象的实例化以及回答一下这两个问题. 首先我们用图例来说明对象的实例化: ...
- 11.4.4 LVS-Fullnat
lvs-fullnat(双向转换) 通过请求报文的源地址为DIP,目标为RIP来实现转发:对于响应报文而言,修改源地址为VIP,目标地址为CIP来实现转发: CIP --> DIP VIP -- ...
- @Value竟然能玩出这么多花样
前言 对于从事java开发工作的小伙伴来说,spring框架肯定再熟悉不过了.spring给开发者提供了非常丰富的api,满足我们日常的工作需求. 如果想要创建bean实例,可以使用@Controll ...
- Java---String和StringBuffer类
Java---String和StringBuffer类 Java String 类 字符串在Java中属于对象,Java提供String类来创建和操作字符串. 创建字符串 创建字符串常用的方法如下: ...
- cookie和session和localStorage的区别
这三个都是保存在浏览器端,而且都是同源的. Session仅在当前浏览器窗口关闭有效,不能持久保存 Localstorage始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据 Cookie只在设置 ...
- Codeforces1514B
问题描述 给你两个数n,k,问可以构造多少n个最大位数为k数按位与为0并且这n个数加起来最大的合法序列,答案对1e9 + 7取模. 思路分析 首先我们考虑这n个数按位与以后为0这个条件:我们可以知道, ...