一、输入流操作

1.read 无格式输入指定字节数

istream& read ( char* pch, int nCount );

istream& read ( unsigned char* puch, int nCount );

istream& read ( signed char* psch, int nCount );

2.get 从流中提取字符,包括空格

int get();

istream& get( char* pch, int nCount, char delim = '\n' );

istream& get( unsigned char* puch, int nCount, char delim = '\n' );

istream& get( signed char* psch, int nCount, char delim = '\n' );

istream& get( char& rch ); istream& get( unsigned char& ruch );

istream& get( signed char& rsch );

istream& get( streambuf& rsb, char delim = '\n' );

3.getline 从流中提取一行字符

istream& getline( char* pch, int nCount, char delim = '\n' );

istream& getline( unsigned char* puch, int nCount, char delim = '\n' );

istream& getline( signed char* psch, int nCount, char delim = '\n' );

4.ignore 提取并丢弃流中指定字符

istream& ignore( int nCount = 1, int delim = EOF );

5.peek 返回流中下一个字符,但不从流中删除

int peek();

6.gcount 统计最后输入的字符个数

int gcount() const;

7.eatwhite 忽略前导空格

void eatwhite();

8.seekg 移动输入流指针

istream& seekg( streampos pos );

istream& seekg( streamoff off, ios::seek_dir dir );

9.tellg 返回输入流中指定位置的指针值

streanpos tellg();

10.operator >> 提取运算符

basic_istream& operator>>( basic_istream& (*pf)(basic_istream&));

basic_istream& operator>>( basic_ios<E, T>& (*pf)(basic_ios<E, T>&));

basic_istream& operator>>( ios_base<E, T>& (*pf)(ios_base<E, T>&));

basic_istream& operator>>( basic_streambuf<E, T> *sb);

basic_istream& operator>>(bool& n);

basic_istream& operator>>(short& n);

basic_istream& operator>>(unsigned short& n);

basic_istream& operator>>(int& n);

basic_istream& operator>>(unsigned int& n);

basic_istream& operator>>(long& n);

basic_istream& operator>>(unsigned long& n);

basic_istream& operator>>(void *& n);

basic_istream& operator>>(float& n);

basic_istream& operator>>(double& n);

basic_istream& operator>>(long double& n);

例子:

 //用get函数从键盘输入字符
void f1(){
char c;
cout<<"Enter first sentence followed by enter\n";
while((c = cin.get())!='\n')
cout.put(c);
cout<<endl; cout<<"Enter second sentence followed by enter\n";
while(cin.get(c)){
if (c == '\n')
break;
cout.put(c);
}
cout<<endl; cout<<"Enter thired sentence followed by enter\n";
char s[];
cin.get(s, );
cout<<s<<endl;
}

输出:

二、输出流

1.put 无格式,插入一个字节

ostream& put(char ch);

2.write 从无格式,插入一字节序列

ostream& write( const char* pch, int nCount );

ostream& write( const unsigned char* puch, int nCount );

ostream& write( const signed char* psch, int nCount );

3.flush 刷新输出流

ostream& flush();

4.seekp 移动输出流指针

ostream& seekp( streampos pos );

ostream& seekp( streamoff off, ios::seek_dir dir );

5.tellp 返回输出流中指定位置的指针

streampos tellp();

6.operstor<< 插入运算符

basic_ostream& operator<<( basic_ostream& (*pf)(basic_ostream&));

basic_ostream& operator<<( basic_ios<E, T>& (*pf)(basic_ios<E, T>&));

basic_ostream& operator<<( ios_base<E, T>& (*pf)(ios_base<E, T>&));

basic_ostream& operator<<( basic_streambuf<E, T> *sb);

basic_ostream& operator<<(const char *s);

basic_ostream& operator<<(char c);

basic_ostream& operator<<(bool n);

basic_ostream& operator<<(short n);

basic_ostream& operator<<(unsigned short n);

basic_ostream& operator<<(int n);

basic_ostream& operator<<(unsigned int n);

basic_ostream& operator<<(long n);

basic_ostream& operator<<(unsigned long n);

basic_ostream& operator<<(float n);

basic_ostream& operator<<(double n);

basic_ostream& operator<<(long double n);

basic_ostream& operator<<(void *n);

例子:

 #include<iostream.h>
void main()
{ cout << "Enter a sentence followed by Enter\n" ;
char s[ ] ;
cin.getline ( s, ) ;
cout.write(s, ) ;
cout<<endl;
}

输出:

三、流错误状态

C++: I/O流详解的更多相关文章

  1. 基于JavaSE阶段的IO流详解

    1.IO流基本概述 在Java语言中定义了许多针对不同的传输方式,最基本的就是输入输出流(俗称IO流),IO流是属于java.io包下的内容,在JavaSE阶段主要学下图所示的: 其中从图中可知,所有 ...

  2. CSS布局之脱离文档流详解——浮动、绝对定位脱离文档流的区别

    1.代码 (1)示例代码1 <!DOCTYPE html> <html lang="zh"> <head> <meta charset=& ...

  3. Spring Cloud Zuul 限流详解(附源码)(转)

    在高并发的应用中,限流往往是一个绕不开的话题.本文详细探讨在Spring Cloud中如何实现限流. 在 Zuul 上实现限流是个不错的选择,只需要编写一个过滤器就可以了,关键在于如何实现限流的算法. ...

  4. [视频播放] HLS协议之M3U8、TS流详解

    本文转载自:<hls之m3u8.ts流格式详解> HLS,Http Live Streaming 是由Apple公司定义的用于实时流传输的协议,HLS基于HTTP协议实现,传输内容包括两部 ...

  5. Spring Cloud限流详解

    转自:https://blog.csdn.net/tracy38/article/details/78685707 在高并发的应用中,限流往往是一个绕不开的话题.本文详细探讨在Spring Cloud ...

  6. Spring Cloud(十二):Spring Cloud Zuul 限流详解(附源码)(转)

    前面已经介绍了很多zuul的功能,本篇继续介绍它的另一大功能.在高并发的应用中,限流往往是一个绕不开的话题.本文详细探讨在Spring Cloud中如何实现限流. 在 Zuul 上实现限流是个不错的选 ...

  7. web前端学习(四)JavaScript学习笔记部分(5)-- 事件流详解

    1.JS事件详解-事件流 1.1.事件流 1.事件流: 描述的是在页面中接受事件的顺序 2.事件冒泡: 由最具体的元素接收,然后逐级上传播至最不具体的节点(文档) 3.事件捕获: 最不具体的节点先接收 ...

  8. IO流详解

    目录 IO流 IO流概述及其分类 IO概念 流按流向分为两种: 流按操作类型分为两种: 常用的IO流类 字节流的抽象父类: 字符流的抽象父类: InputStream & FileInputS ...

  9. Java io流详解四

    转载地址:http://www.cnblogs.com/rollenholt/archive/2011/09/11/2173787.html 写在前面:本文章基本覆盖了java IO的全部内容,jav ...

  10. java IO流详解

    流的概念和作用 学习Java IO,不得不提到的就是JavaIO流. 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...

随机推荐

  1. PHP实现图片压缩的两则实例(转)

    本文介绍了PHP实现图片压缩的两种方法,读者可以根据具体应用参考或加以改进,以适应自身应用需求!废话不多说,主要代码部分如下: 实例1: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 ...

  2. dockerfile mysql

    FROM centos6.6-mysql5.5:0.0.4 MAINTAINER syberos:wangmo RUN mv /etc/my.cnf /etc/my.cnf.bak ADD my.cn ...

  3. 利用TaskScheduler处理Queue、Stack等类型的操作队列(生产者消费者场景)

    我们经常会遇到生产者消费者模式,比如前端各种UI操作事件触发后台逻辑等.在这种典型的应用场景中,我们可能会有4个业务处理逻辑(下文以P代表生产者,C代表消费者): 1. FIFO(先进先出)     ...

  4. PHP获取汉字拼音首字母 截取中文字符串

    http://blog.csdn.net/everything1209/article/details/39005785 substr是按字符分割,而mb_strcut是按字节来分割,但是都不会产生半 ...

  5. 怎么让eclipse调试的时候不进入 class文件中去

    Eclipse -> Window ->Preferences ->Java ->Debug "Suspend execution on uncaught excep ...

  6. 组装恢复rbd

    标签: ceph,ceph实验,rbd cluster相关环境: # cat /etc/redhat-release CentOS Linux release 7.3.1611 (Core) # ce ...

  7. jenkins基础知识

    修改默认端口号启动: java -jar jenkins.war --ajp13Port=-1 --httpPort=8089 一些基本的命令: http://[jenkins-server]/[co ...

  8. .Net 使用 GregorianCalendar 获取任意一天为一年的第几周

    private static int GetWeekOfYear(DateTime dt) { GregorianCalendar gc = new GregorianCalendar(); int ...

  9. lineNumber: 8; columnNumber: 128; cvc-elt.1: 找不到元素 'beans' 的声明

    转自:https://blog.csdn.net/java_yejun/article/details/51036638 spring和mybatis整合时出现了lineNumber: 8; colu ...

  10. C#高级参数ref的使用

    ref关键字用于将方法内的变量改变后带出方法外.具体我们通过例子来说明: 例子中,将变量n1和n2交换了.如果没有加ref参数,由于没有swadDemo()方法没有返回值,调用后,n1和n2是不会交换 ...