2017-08-17 09:03:28

writer:pprp

基本的输入/输出流

默认情况下,输入操作会丢弃前导空白,读取数据,遇到空白的时候停止读入;

如果希望的如包括空白在内的任意字符,可以使用istream成员函数get()

#include <iostream>

using namespace std;

int main()
{
char ch;
while(cin.get(ch))
{
cout.put(ch);
//....
}
return ;
}

其他输入/输出操作

istream成员函数:get()、getline()、read()、gcount()、ignore()等

ostream成员函数:put()、write()、flush()等

1、get()函数

一次读入一个字符;istream& get(char &ch)

对应的ostream成员函数put(); ostream& put(char ch)

get()另一种形式从输入流读入一个字符返回该字符的int值; int get();

#include <iostream>
#include <cstdio> using namespace std; int main()
{
int ch;
while((ch = cin.get()) != EOF)
{
cout.put(ch);
}
return ;
}

get()第三种形式是; istream &get(char* buf, streamsize num, char delim = '\n');

buf存放的是字符数组的首地址, streamsize num代表的从istream可以读入的最大数目,delim是终止符,读到这个就结束,delim本身不被读入,而是留在istream中作为istream下一个字符。istream成员函数ignore()可以读入istream中默认1个字符并丢弃

istream & ignore(streamsize num = 1, int delim = EOF)

istream的成员函数gcount()返回上一次输入操作实际从输入流读取的字符个数,streamsize gcount() const;

#include <iostream>
#include <cstdio> using namespace std; int main()
{
const int max_line = ;
char line[max_line];
while(cin.get(line,max_line))
{
int get_count = cin.gcount();
cout << "characters actually read: "
<< get_count << endl; //...
if(get_count < max_line)
cin.ignore();
}
return ;
}

2、getline()  #include<string>

使用语法与get()第三种一样,差别在于getline()会直接把delim读入并丢弃

istream&getline (char*buf, streamsize num, char delim = '\n')

非成员函数成员函数getline(),可以直接将文本读入string 对象中,

istream & getline(istream & is , string & str, char  delimiter = '\n');

3、read()

从输入流读入size个连续字节

read(char&addr, streamsize size)将其存放在addr为首地址的内存中。

ostream相对应是write()

write( char * sink, streamsize length) 输出长度为length的字符数组sink返回ostream对象

4、操纵符

#include <iostream>
#include <cstdio> using namespace std; int main()
{
int a = ;
int b = ;
cout << boolalpha << (a > b) << endl;
return ;
}
//输出FALSE

5、文件输入输出

#include <iostream>
#include <string>
#include <fstream> using namespace std; int main()
{
ifstream infile("pprp.txt"); string str; getline(infile,str); cout << str << endl; return ;
}

C++输入/输出流的更多相关文章

  1. java.IO输入输出流:过滤流:buffer流和data流

    java.io使用了适配器模式装饰模式等设计模式来解决字符流的套接和输入输出问题. 字节流只能一次处理一个字节,为了更方便的操作数据,便加入了套接流. 问题引入:缓冲流为什么比普通的文件字节流效率高? ...

  2. Java中IO流,输入输出流概述与总结

    总结的很粗糙,以后时间富裕了好好修改一下. 1:Java语言定义了许多类专门负责各种方式的输入或者输出,这些类都被放在java.io包中.其中, 所有输入流类都是抽象类InputStream(字节输入 ...

  3. 第27章 java I/O输入输出流

    java I/O输入输出流 1.编码问题 import java.io.UnsupportedEncodingException; /** * java涉及的编码 */ public class En ...

  4. java 对象输入输出流

    对象的输入输出流的作用: 用于写入对象 的信息读取对象的信息. 对象的持久化. 比如:用户信息.              ObjectInputStream   : 对象输入流            ...

  5. 【转】输入/输出流 - 全面掌握IO

    File类: 程序中操作文件和目录都可以使用File类来完成即不管是文件还是目录都是使用File类来操作的,File能新建,删除,重命名文件和目录,但File不能访问文件内容本身,如果需要访问文件本身 ...

  6. 输入输出流(IO)

    输入输出流(IO)文件(File)java.io.File用于表示文件(目录),也就是说程序员可以通过File类在程序中操作硬盘上的文件和目录.File类只用于表示文件(目录)的信息(名称.大小等), ...

  7. Java输入/输出流体系

    在用java的io流读写文件时,总是被它的各种流能得很混乱,有40多个类,理清啦,过一段时间又混乱啦,决定整理一下!以防再忘 Java输入/输出流体系 1.字节流和字符流 字节流:按字节读取.字符流: ...

  8. JAVA Io 缓冲输入输出流

    java中提供带缓冲的输入输出流.在打开文件进行写入或读取操作时,都会加上缓冲,提高了IO读写性能. 1. BufferedInputStream 缓冲输入流 2. BufferedOutputStr ...

  9. C++输入输出流

    一.C++输入输出流的含义 以前所用到的输入和输出,都是以终端为对象的,即从键盘输入数据,运行结果输出到显示器屏幕上.从操作系统的角度看,每一个与主机相连的输入输出设备都被看作一个文件.程序的输入指的 ...

  10. Java 输入输出流 转载

    转载自:http://blog.csdn.net/hguisu/article/details/7418161 1.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作. Java所 ...

随机推荐

  1. Python笔记-进程Process、线程Thread、上锁

    1.对于操作系统来说,一个任务就是一个进程(Process).比如打开一个浏览器就是启动一个浏览器进程,打开一个记事本就启动了一个记事本进程. 2.在一个进程内部,要同时干多件事,就需要同时运行多个“ ...

  2. 原型模式(Prototype Pattern)--对象的克隆

    定义:使用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象; 原型类的核心在于如何实现克隆方法: 能够实现克隆的Java类必须实现一个标识接口Cloneable,表示这个类支持被复制; 通 ...

  3. 剑指Offer——二进制中1的个数

    题目描述: 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 分析: 加入一个数的二进制位是XXX...XXX1000...000,那么这个数减去1,就会变成XXX...XXX0111 ...

  4. C#中Datatable和List互相转换

    其实早就该写的,哈哈,不过今天刚想起来注册,热热手,就写一下,哈哈. 直接上内容吧: 建立一个控制台应用程序, List<students> Studentlist = new List& ...

  5. Windows10安装MySQL5.6.24

    1.解压安装包到指定目录如:E:\Java\mysql-5.6-24-win32 2.在E:\Java\mysql-5.6-24-win32目录下新建my.ini文件,内容如下 [mysqld] ba ...

  6. 【react map函数】

    {...runInfos.map((rowinfo) => { console.log(rowinfo); })}

  7. 优秀Python学习资源收集汇总--强烈推荐(转)

    原文:http://www.cnblogs.com/lanxuezaipiao/p/3543658.html Python是一种面向对象.直译式计算机程序设计语言.它的语法简捷和清晰,尽量使用无异义的 ...

  8. vim 设置字体和解决乱码

    在 C:\Program Files (x86)\Vim 目录中的 _vimrc 文件中加入下面两行 set fileencodings=utf-8,gb2312,gb18030,gbk,ucs-bo ...

  9. (2.1)备份与还原--sql server文件的概念及操作

    概述:sql server是以文件形式存储数据与日志 1.数据文件 sql server数据文件分为2类 (1)主数据库文件 主数据库文件包含数据库的启动信息.系统对象,并指向数据库的其他文件(从数据 ...

  10. OCR技术浅探: 光学识别(3)

    经过前面的文字定位和文本切割,我们已经能够找出图像中单个文字的区域,接下来可以建立相应的模型对单字进行识别. 模型选择 在模型方面,我们选择了深度学习中的卷积神经网络模型,通过多层卷积神经网络,构建了 ...