C++中的文件输入/输出(2)
来源:互联网 发布:有什么好的淘宝论坛 编辑:程序博客网 时间:2024/04/30 03:12
C++中的文件输入/输出(2)
原作:Ilia Yordanov, loobian@cpp-home.com
读取文件
你已经看到了应该如何写文件。现在,当我们已经得到cpp-home.txt文件时,我们将要读取它,并且将内容打印在屏幕上。
首先,我要指出的是,有很多种方法可以读取文件。以后我会向你们介绍所有的方法(就我所知的)。此刻,我先向你展示最佳的方法(我认为的)。
正如你已经熟悉的——我将首先给出一段程序代码,然后,我会详细地对它进行解释说明:
#include <fstream.h>
void main() //程序从这里开始
{
ifstream OpenFile("cpp-home.txt");
char ch;
while(!OpenFile.eof())
{
OpenFile.get(ch);
cout << ch;
}
OpenFile.close();
}
你想必已经了解首行的意义所在,而剩下的部分将由我为你解释。
ifstream OpenFile(“cpp-home.txt”) —— 我猜它对现在的你而言多少会熟悉些!ifstream表示“input file stream(输入文件流)”。在前一节的程序中,出现的则是ofstream,它的意义是“output file stream(输出文件流)”。前一节的程序是进行文件的写操作,这就是它用“output(输出)”来表示的原因。而本节的程序则是读取一个文件,这就是它用“input(输入)”来表示的原因。这一行剩下的代码于你而言应当是熟悉的了:OpenFile是ifstream类的一个对象,它将关联一个输入文件流;而用引号括住的内容,就是将要打开的文件的名称。
请注意:这里没有对要打开的文件是否存在进行测试!以后我将向你指出如何进行检测。
char ch; —— 声明一个字符数组(array of type char)。只是有一点要提醒你:这样的数组(arrays)只能存储一个ASCII字符。
while(!OpenFile.eof()) —— 如果已经到达文件末尾,eof( )函数将返回一个非零值。因此我们所设计的这个循环将一直持续,直至我们的文件操作到达文件末尾。这样我们就可以遍历整个文件,以便对它进行读取。
OpenFile.get(ch); —— OpenFile是类ifstream的一个对象。该类声明了一个名为get( )的成员函数。只要我们拥有该对象,我们自然就可以调用这个函数。get( )函数从相应的流文件中读出一个字符,并将其返回给变量。在本例中,get( )函数只带一个参数——用于存储所读取的字符的变量。所以,调用OpenFile.get(ch)后程序将会从OpenFile流中读取一个字符并存入变量ch中。
注意:如果你再次调用该函数,它将读取下一个字符,而不是原来的那一个!你过后将理解为什么会这样。
这就是我们要不断反复循环直至读操作到达文件尾的原因。每循环一次,我们将读出一个字符并将它保存在ch中。
cout << ch; —— 显示ch变量值,它保存了读取得到的字符。
File.close(); —— 我们打开了一个流式文件,就需要关闭它。使用close()函数即可将它关闭,这和前一节的一样!
注意:一旦你关闭了一个文件,在你重新打开它之前,你不能再对它进行访问。
大功告成了!我希望你能明白我的解释。当你编译并运行这个程序的时候,它应当会输出:
“Hello World, from www.cpp-home.com and Loobian!”
- C --- 文件输入/输出
- C++中的文件输入/输出(2)
- C++中的文件输入/输出(2)
- C语言中的文件输入、输出(file I/O)
- C语言中的文件流的输入和输出
- C语言读取文件中的数据作为输入和输出
- C++中的文件输入/输出
- C++中的文件输入/输出
- C++中的文件输入/输出
- C++中的文件输入/输出
- C++中的文件输入/输出
- C++中的文件输入/输出
- C++中的文件输入/输出
- C++中的文件输入/输出
- C++中的文件输入/输出
- C++中的文件输入/输出
- C++中的文件输入/输出
- C++中的文件输入/输出
- 开源防火墙
- VC,COM,MFC更全面的资料
- 清华北大毕业生都去了哪里?
- 当页面有ID重复的控件时,使用Validator后仍能正常工作
- 设计模式之我见
- C++中的文件输入/输出(2)
- C++中的文件输入/输出(3)
- C++中的文件输入/输出(6):一些有用的函数
- C++中的文件输入/输出(5)
- 人心一涣散,什么都免谈
- 检测并禁用隐藏服务
- 十条生活中的经典小语
- 【收藏】内核级利用通用Hook函数方法检测进程
- 关于嵌入式Linux系统的启动(很好的嵌入式linux启动过程分析)