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 ...
随机推荐
- HDU1392(凸包)
Surround the Trees Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Other ...
- 用php进行md5解密的源码,亲测可用
<?php $md5 = "c1c95b382230eb9e27a60c4baceb5f2e"; $uid = "hhp-ImZRY"; $token = ...
- Swing JComboBox的使用
1:JComboBox的使用:类层次结构图: java.lang.Object --java.awt.Component --java.awt.Container --javax.swing.JCom ...
- C语言函数名与函数指针详解
一.通常的函数调用 一个通常的函数调用的例子: /* 自行包含头文件 */ void MyFun(int x); /* 此处的声明也可写成:void MyFun(int) */ int main(in ...
- viewpager翻页的窗帘效果动画
前端时间比较忙,好长时间没有更新微博,就工作中出现的部分问题,与大家分享一下. 大家都知道viewpager在android开发中是运用率比较高的控件,现在就其窗帘下过的动画分享. 文章出处:http ...
- JAVA中的基本数类型据
一.基本类型 byte: java中最小的数据类型.1字节/8位.-128(2^7)~127(2^7-1),默认值0. short: 短整型,2字节/16位,取值范围-32768(--2^15)~3 ...
- java-6数组
一. 请编写一个程序将一个整数转换为汉字读法字符串.比如"1123"转换为"一千一百二十三".更进一步,能否将数字表示的金额改为"汉字表达?比如将&q ...
- centos安装UCenter 和 UCenter_Home
1.搭建lamp环境yum –y install httpd php php-mysql mysql mysql-server 2启动服务 3.设置服务开机自动启动 4.上传UCEN ...
- spring boot项目发布tomcat容器(包含发布到tomcat6的方法)
spring boot因为内嵌tomcat容器,所以可以通过打包为jar包的方法将项目发布,但是如何将spring boot项目打包成可发布到tomcat中的war包项目呢? 1. 既然需要打包成wa ...
- BZOJ 1835: [ZJOI2010]base 基站选址(DP,线段树)
可以很容易的写出dp方程: F[i][j]=min(F[l][j-1]+w[l][i])+c[i] (w[i][j]是从l+1到i-1这些点p里,所有满足d[p]+s[p]<d[i] & ...
