C++输入/输出流
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++输入/输出流的更多相关文章
- java.IO输入输出流:过滤流:buffer流和data流
java.io使用了适配器模式装饰模式等设计模式来解决字符流的套接和输入输出问题. 字节流只能一次处理一个字节,为了更方便的操作数据,便加入了套接流. 问题引入:缓冲流为什么比普通的文件字节流效率高? ...
- Java中IO流,输入输出流概述与总结
总结的很粗糙,以后时间富裕了好好修改一下. 1:Java语言定义了许多类专门负责各种方式的输入或者输出,这些类都被放在java.io包中.其中, 所有输入流类都是抽象类InputStream(字节输入 ...
- 第27章 java I/O输入输出流
java I/O输入输出流 1.编码问题 import java.io.UnsupportedEncodingException; /** * java涉及的编码 */ public class En ...
- java 对象输入输出流
对象的输入输出流的作用: 用于写入对象 的信息读取对象的信息. 对象的持久化. 比如:用户信息. ObjectInputStream : 对象输入流 ...
- 【转】输入/输出流 - 全面掌握IO
File类: 程序中操作文件和目录都可以使用File类来完成即不管是文件还是目录都是使用File类来操作的,File能新建,删除,重命名文件和目录,但File不能访问文件内容本身,如果需要访问文件本身 ...
- 输入输出流(IO)
输入输出流(IO)文件(File)java.io.File用于表示文件(目录),也就是说程序员可以通过File类在程序中操作硬盘上的文件和目录.File类只用于表示文件(目录)的信息(名称.大小等), ...
- Java输入/输出流体系
在用java的io流读写文件时,总是被它的各种流能得很混乱,有40多个类,理清啦,过一段时间又混乱啦,决定整理一下!以防再忘 Java输入/输出流体系 1.字节流和字符流 字节流:按字节读取.字符流: ...
- JAVA Io 缓冲输入输出流
java中提供带缓冲的输入输出流.在打开文件进行写入或读取操作时,都会加上缓冲,提高了IO读写性能. 1. BufferedInputStream 缓冲输入流 2. BufferedOutputStr ...
- C++输入输出流
一.C++输入输出流的含义 以前所用到的输入和输出,都是以终端为对象的,即从键盘输入数据,运行结果输出到显示器屏幕上.从操作系统的角度看,每一个与主机相连的输入输出设备都被看作一个文件.程序的输入指的 ...
- Java 输入输出流 转载
转载自:http://blog.csdn.net/hguisu/article/details/7418161 1.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作. Java所 ...
随机推荐
- c++ socket相关
http://blog.sina.com.cn/s/blog_43ad62c70100gtow.html,一个简单的C语言的socket服务器和客户端程序 http://www.cnblogs.com ...
- python基础-第六篇-6.2模块
python之强大,就是因为它其提供的模块全面,模块的知识点不仅多,而且零散---一个字!错综复杂 没办法,二八原则抓重点咯!只要抓住那些以后常用开发的方法就可以了,哪些是常用的?往下看--找答案~ ...
- Python3: Command not found(Mac OS)
1. 第一步:查看以下路径是否安装有 Python 3.x # 打开以下目录, 版本号有可能不同 cd /usr/local/Cellar/python/3.5.2_3/bin # 查看当前目录的内容 ...
- kafka-stream数据清洗
1.数据清洗业务类LogProcessor package com.css.kafka.kafka_stream; import org.apache.kafka.streams.processor. ...
- 多进程使用matplotlib.pyplot绘heatmap(多线程不可以)
数据格式如下: 8_15/l_eye/2732.png -20.5773 -5.17769 -3.34583 21.5859 9_13_1/l_eye/1211.png -10.1145 34.992 ...
- Robberies---hdu2955(概率dp,01背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2955 题目给了每个银行的钱和被抓的概率,由于要抢尽量多的钱,所以要保证尽量不被抓,而抢多个银行之后不被 ...
- oracle中 rownum 与 connect by的结合使用
原文:http://blog.sina.com.cn/s/blog_a26966d90102wwkb.html oracle中 rownum 与 connect by的结合使用 SELECT ROWN ...
- JavaWeb—Session与Cookie
概念 会话:指从一个浏览器窗口打开到关闭期间的一系列动作(可简单理解为用户开一个浏览器,点击多个链接,访问服务器多个web资源,然后关闭浏览器). HTTP协议是无状态协议:每次连接(比如同一个网站的 ...
- 如何制作一款HTML5 RPG游戏引擎——第一篇,地图类的实现
一,话说天下大事 前不久看到lufy的博客上,有一位朋友想要一个RPG游戏引擎,出于兴趣准备动手做一做.由于我研究lufylegend有一段时间了,对它有一定的依赖性,因此就准备将这个引擎基于lufy ...
- TensorFlow学习笔记(七)Tesnor Board
为了更好的管理.调试和优化神经网络的训练过程,TensorFlow提供了一个可视化工具TensorBoard.TensorBoard可以有效的展示TensorFlow在运行过程中的计算图..各种指标随 ...