一:c++I/O处理,按照数据输入输出的过程,形象的将其看做流。数据在流中进行传播。

所有的流有两个基类:iosstreambuf
streambuf:提供对缓冲区的基本操作,设置缓冲区等
ios:记录流的状态,支持对streambuf的输入/输出的格式化/非格式化操作。

istreamostream的操作:

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基础的更多相关文章

  1. java IO基础操作

    java IO基础,通熟易懂,好久没复习java 基础了.这里是传送门... http://www.cnblogs.com/nerxious/archive/2012/12/15/2818848.ht ...

  2. 归纳从文件中读取数据的六种方法-JAVA IO基础总结第2篇

    在上一篇文章中,我为大家介绍了<5种创建文件并写入文件数据的方法>,本节我们为大家来介绍6种从文件中读取数据的方法. 另外为了方便大家理解,我为这一篇文章录制了对应的视频:总结java从文 ...

  3. 总结java创建文件夹的4种方法及其优缺点-JAVA IO基础总结第三篇

    本文是Java IO总结系列篇的第3篇,前篇的访问地址如下: 总结java中创建并写文件的5种方式-JAVA IO基础总结第一篇 总结java从文件中读取数据的6种方法-JAVA IO基础总结第二篇 ...

  4. 总结删除文件或文件夹的7种方法-JAVA IO基础总结第4篇

    本文是Java IO总结系列篇的第4篇,前篇的访问地址如下: 总结java中创建并写文件的5种方式-JAVA IO基础总结第一篇 总结java从文件中读取数据的6种方法-JAVA IO基础总结第二篇 ...

  5. 总结java中文件拷贝剪切的5种方式-JAVA IO基础总结第五篇

    本文是Java IO总结系列篇的第5篇,前篇的访问地址如下: 总结java中创建并写文件的5种方式-JAVA IO基础总结第一篇 总结java从文件中读取数据的6种方法-JAVA IO基础总结第二篇 ...

  6. Day16_92_Java IO 基础概念

    Java IO 基础概念 流根据方向分为 输入流 和 输出流. 注意 : 输入和输出是相对与内存而言的,从内存出来就是输出,到内存中去就是输入. 输入叫做 "读" , 输出叫做 & ...

  7. IO基础内容(File)

    JavaIO基础内容 IO技术概述 Output 把内存中的数据存储到持久化设备上这个动作称为输出(写)Output操作 Input 把持久设备上的数据读取到内存中的这个动作称为输入(读)Input操 ...

  8. IO(基础知识)

        IO流类的构造方法决定是输入流还是输出流.输入流连接一个文件,它会将文件中的内容读到流里面,read方法是将流里面的内容     往外读.输出流连接一个文件,它的write方法,是将内存中的内 ...

  9. Socket.IO基础教程

    什么是Socket.IO Socket.IO是一个库,可用于在浏览器和服务器之间进行实时,双向和基于事件的通信.它包括: 使Node.js服务器:来源 | API 为浏览器(可从Node.js的也运行 ...

  10. File与IO基础

    IO流的作用:持久化到磁盘 File类的使用 File类基本概念 文件和文件夹都是用File类来表示. File类是内存层面的对象,内存中创建出来的File对象不一定有一个真实存在的文件或文件夹,但是 ...

随机推荐

  1. Centos8.X 搭建Grafana+Jmeter+Influxdb 性能实时监控平台

    前言 本篇文章引用了小菠萝测试笔记,大部分内容非原创,基于自身实操过程中,完善了部分. 本篇随笔是在Linux上搭建的,后面会补充在docker以及k8s上如何部署安装 工具介绍 工具 介绍 Jmet ...

  2. 软件开发的V模型

    原文来自:http://www.51testing.com/html/67/n-3723567.html 软件开发的V模型大家都不陌生,其中测试阶段分为单元测试->功能测试->系统测试-& ...

  3. Java两种基础结构

    顺序结构 JAVA的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行 顺序结构是最简单的算法结构 语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的 ...

  4. python爬虫抓取中国最好大学排名1 清华大学 北京 94.0 100.0 97.70% 清华大学 2 北京大学

    import requests from bs4 import BeautifulSoup import bs4.element r=requests.get("http://www.zui ...

  5. Stream聚合函数

    Stream班介绍 幼稚园开学的第一天,各们家长把小朋友送到了园里,各位小朋友都你看看我,我看看你.有的嚎啕大哭,有的呆若木鸡....这里时候园长安排我拿来小本本记录入园的小朋友.... 记录小朋友 ...

  6. ServerManager.exe 0xc0000135 应用程序错误(Windows Server 2016、2019)

    前言 将 Windows Server 2019或2016 .NET Framework移除. IIS卸载后,服务器管理器.控制面板部分功能.事件查看器等都无法正常开启. 解决办法 打开CMD,输入D ...

  7. Skywalking-12:Skywalking SPI机制

    SPI机制 基本概述 SPI 全称 Service Provider Interface ,是一种服务发现机制.通过提供接口.预定义的加载器( Loader )以及约定俗称的配置(一般在 META-I ...

  8. nsq topic

    与Topic相关的代码主要位于nsqd/topic.go中. 上一篇文字我们讲解了下nsq的启动流程.对nsq的整体框架有了一个大概的了解.本篇文章就是由大到小.对于topic这一部分进行详尽的讲解. ...

  9. 无法解析的外部符号之_cvLoadImage,_cvCreateMat,_cvReleaseImage之类

    一个错误可能是:附加依赖项少添加了库函数: 还有一个可能是:配置设置错误了,比如该是64位,却设置成win32了.改过来就好了. 要注意opencv的使用中 在Debug.Release模式以及x64 ...

  10. CF992E Nastya and King-Shamans(线段树二分+思维)

    这是一道卡常好题 从160s卡到36s qwq 由于题目设计到原数组的单点修改,那么就对应着前缀和数组上的区间加. 很显然能想到用线段树来维护这么个东西. 那么该如果求题目要求的位置呢 我们来看这个题 ...