C++ IO学习
关于IO,主要有这么三种类型:标准输入输出,文件输入输出,字符串流。后面两种都是继承自第一种标准输入输出的。他们分别对应的头文件是:
标准输入输出:#include <iostream>
文件输入输出:#include <fstream>
字符串流:#include <sstream>
流对象是不能复制和拷贝的。因此流对象不能用于赋值和参数传递,如果一定要传递,那么必须传递指针或者引用。
这里记录了一个例子来说明,流对象的使用,通过这个使用,来说明流对象的属性状态。上代码,假如在本地D盘根目录下有个文件hello.txt。文件中的内容是001--006。
#include "stdafx.h"
#include <fstream>
#include <sstream>
#include <iostream> using namespace std; ifstream &print(ifstream &in)
{
string str; cout << in.bad() << endl;
cout << in.good() << endl;
cout << in.fail() << endl;
cout << in.eof() << endl;
cout << "--------------------1" << endl;
while (in >> str)
{
cout << str << endl;
}
cout << "--------------------2" << endl;
cout << in.bad() << endl;
cout << in.good() << endl;
cout << in.fail() << endl;
cout << in.eof() << endl;
cout << "--------------------3" << endl;
in.clear();
cout << in.bad() << endl;
cout << in.good() << endl;
cout << in.fail() << endl;
cout << in.eof() << endl;
in.seekg(, ios_base::beg);
return in;
} int main()
{
ifstream in("d://hello.txt");
string str;
print(in);
while (in >> str)
{
cout << str << endl;
}
in.close();
return ;
}
如上代码示例了读取一个文件,并将文件内容打印到控制台上,并且将IO流重置,并且重新打印一遍。
其中如下代码表示了流对象的四种状态:
in.bad() 如果流被破坏,则返回true.
in.good()如果流处于有效状态,则返回true。
in.fail() 如果IO操作失败,则返回true。
in.eof() 如果读取文件到了文件末尾,则返回true。
in.clear(); 用于重置所有的状态。
in.seekg(0, ios_base::beg); 将文件操作的指针重置到文件开始处。
C++ IO学习的更多相关文章
- Java IO学习笔记:概念与原理
Java IO学习笔记:概念与原理 一.概念 Java中对文件的操作是以流的方式进行的.流是Java内存中的一组有序数据序列.Java将数据从源(文件.内存.键盘.网络)读入到内存 中,形成了 ...
- Java IO学习笔记总结
Java IO学习笔记总结 前言 前面的八篇文章详细的讲述了Java IO的操作方法,文章列表如下 基本的文件操作 字符流和字节流的操作 InputStreamReader和OutputStreamW ...
- Java IO学习笔记三
Java IO学习笔记三 在整个IO包中,实际上就是分为字节流和字符流,但是除了这两个流之外,还存在了一组字节流-字符流的转换类. OutputStreamWriter:是Writer的子类,将输出的 ...
- Java IO学习笔记二
Java IO学习笔记二 流的概念 在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成. 程序中的输入输 ...
- Java IO学习笔记一
Java IO学习笔记一 File File是文件和目录路径名的抽象表示形式,总的来说就是java创建删除文件目录的一个类库,但是作用不仅仅于此,详细见官方文档 构造函数 File(File pare ...
- java IO 学习(三)
java IO 学习(一)给了java io 进行分类,这一章学习这些类的常用方法 一.File 1.创建一个新的File的实例: /** * 创建一个新的File实例 */ File f = new ...
- nodejs的socket.io学习笔记
socket.io学习笔记 1.服务器信息传输: 2.不分组,数据传输: 3.分组数据传输: 4.Socket.io难点大放送(暂时没有搞定): 服务器信息传输 1. // send to curre ...
- 阻塞 io 非阻塞 io 学习笔记
阻塞 io 非阻塞 io 学习笔记
- Java IO学习笔记一:为什么带Buffer的比不带Buffer的快
作者:Grey 原文地址:Java IO学习笔记一:为什么带Buffer的比不带Buffer的快 Java中为什么BufferedReader,BufferedWriter要比FileReader 和 ...
- Java IO学习笔记二:DirectByteBuffer与HeapByteBuffer
作者:Grey 原文地址:Java IO学习笔记二:DirectByteBuffer与HeapByteBuffer ByteBuffer.allocate()与ByteBuffer.allocateD ...
随机推荐
- 【noip 2009】 乌龟棋 记忆化搜索&动规
题目背景 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 题目描述 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一的起点,第N格是终点,游戏要求玩家控制一个乌龟棋子从起 ...
- IIS配置步骤,绝对有用,百度上的不全面,是百度的补充
百度教程:http://www.jb51.net/article/29787.htm 参照百度教程,但是配置不成功,关键的地方来了!! 下面的也要配置设置 1. 2. 3.C:\Windows\Sys ...
- iOS 即时通讯 + 仿微信聊天框架 + 源码
这些你造吗? 即时通讯(IM),在IOS这片江湖里面已经算是一个老者了,我这小旋风也是在很早以前巡山的时候,就知道有即时通讯这个妖怪,以前也多多少少接触过一些,在造APP的时候用过,哎呀,说着说着就感 ...
- 支付宝App支付~关于它的一些坑
坑这个词不仅在微信平台适用,在支付宝也一样的,下面我们来看一下我在做App支付时的一些坑! APP支持流程: 网站H5下单->向支付宝生成订单->回调app的js->app调用支付宝 ...
- 一个web应用的诞生(6)--用户账户
之前登录注册的功能都已经完成,但是登录成功回到首页发现还是白茫茫的一片,对的,title一直都写得博客,那么最终目的也是写出一个轻博客来,但是,在发表文章之前是不是要先记录一下登录状态呢? 用户登录 ...
- 在GlassFish应用服务器上创建并运行你的第一个Restful Web Service【翻译】
前言 本人一直开发Android应用,目前Android就业形势恶劣,甚至会一路下滑,因此决定学习服务器开发.采用的语言是java,IDE是Intellij,在下载Intellij的同时看到官网很多优 ...
- Java_HelloWorld
Java_HelloWorld 一.JDK安装与环境变量的设置 可以在甲骨文公司的主页上直接下载. 链接:http://www.oracle.com/technetwork/java/javase/d ...
- shell-早间学习,每日一点
1.定位行: sed -n '12,~3p' pass #从第12行开始,直到下一个3的倍数行(12-15行) sed -n '12,+4p' pass #从第12行开始,连续4行(12-16行) s ...
- 单线程JavaScript
最近在阅读<你不知道的JavaScript中卷>,当我看到第二部分介绍异步和回调函数的一些知识时,由于该书在第二部分1.2章对线程.事件循环的概念介绍的并非详细,因此引发了我的一系列思考. ...
- #define宏与const的区别
1.#define宏的用法 #define用宏名代替一个字符串,这样便于修改,提高了程序的可移植性.编译器在编译预处理时只对宏做文本替换,而不进行类型检查,所以替换后可能产生一些副作用. 带参数的宏类 ...