C++ 文件输入输出 (一)
2016-05-18 20:56
337 查看
#include <fstream> #include<iostream> using namespace std; int main() //程序从这里开始运行 { ofstream SaveFile("love.txt"); SaveFile << "Woohyun oppa salanghei!!!\n"; SaveFile.close(); return 0; } ///这个程序将在当前运行目录下建立一个名为love.txt的文件,并向它写入Woohyun oppa salanghei!!!。 /// 哈哈哈哈哈哈哈哈哈,我自己玩的好开心啊!!! ///优贤欧巴的新歌真好听啊!点头点头点头!!! ///******************************************************************************************** #include <fstream.h>—— 你需要包含此文件以使用C++的文件输入/输出函数。注意:一旦包含了这个文件, 你不再需要(为了使用cout/cin)包含iostream.h,因为fstream.h已经自动包含了它。 在这个头文件中声明了若干个类,包括ifstream,ofstream及fstream,它们都继承自istream和ostream类。 这里有问题啊! 我的编译器这样不能实现呢! 改成上面那样才实现的! ///******************************************************************************************** ofstream SaveFile(“cpp-home.txt”); 1)ofstream 即 “output file stream(输出文件流)”。它将建立一个句柄(handle),以便我们以后能以一 个文件流的形式写入文件。 2)SaveFile —— 这是文件句柄的名字,当然,你还可以换用任何一个你想要的名称。 3)("love.txt"); —— 打开名为love.txt的文件。如果程序运行的当前目录已经存在这样一个文件, 则它将被替换掉;万一不存在,程序也会为你创建一个为文件,你不必为此而担心。 fstream是一个类。因此ofstream SaveFile(“love.txt”);这一语句将创建一个该类的对象;而我们在 括号中所传递的参数实际上将传给构造函数:在这里我们将我们要建立的文件的名称作为实际参数传递给了 该类的构造函数。当然,我们还可以传递其它的一些信息, <pre name="code" class="cpp">SaveFile是一个文件句柄,它关联一个打开的流式文件。所以,我们只须输入句柄名,再跟着输入“<<”,然后接着写下一串用引号括起来的文本,就可以实现对文件的写入。如果我们想写入的是某个变量的值而不是带引号的文本,也只须像通常使用cout << 一样将变量传递给句柄对象,像这样: SaveFile << variablename; 就可以了! 程序如上所示!!! SaveFile.close();—— 既然我们打开了一个流文件,那么当我们用完它之后,就必须关闭它。 SaveFile是ofstream类的一个对象,而该类(ofstream)有一个用于关闭文件的成员函数,即close() 函数。 因此,我们只要依次输入文件句柄名,点号和close(),就可以关闭该文件! 注意:一旦你关闭文件,在你重新打开它以前,就再不能对它进行访问。 ///******************************************************************************************* 读取文件 你已经看到了应该如何写文件。现在,当我们已经得到cpp-home.txt文件时,我们将要读取它,并且将内容打印在屏幕上。 首先,我要指出的是,有很多种方法可以读取文件。以后我会向你们介绍所有的方法(就我所知的)。此刻,我先向你展示最佳的方法(我认为的)。 正如你已经熟悉的——我将首先给出一段程序代码,然后,我会详细地对它进行解释说明: */ /* #include <fstream> #include<iostream> using namespace std; int main() //程序从这里开始 { ifstream OpenFile("love.txt"); char ch; while(!OpenFile.eof()) { OpenFile.get(ch); cout << ch; } OpenFile.close(); return 0; } */ ///ifstream表示“input file stream(输入文件流)”。在前一节的程序中,出现的则是ofstream, ///它的意义是“output file stream(输出文件流)”。 ///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()函数即可将它关闭,这和前一 ///节的一样! ///注意:一旦你关闭了一个文件,在你重新打开它之前,你不能再对它进行访问。 ///*******************************************************************************************
相关文章推荐
- 关于C语言中的文件操作
- leetcode
- 【C++】:C++函数重载的映射机制(内容较深)
- 【C++】:C++函数重载
- C++课堂作业_02_PAT1025.反转链表
- C++课堂作业_02_PAT1025.反转链表
- C++第5 次上机作业
- RAD 10 C++Builder的bug
- C++ const限定符详细说明
- C语言的选择算法
- 2015年第六届蓝桥杯C/C++程序设计本科B组决赛第二题
- leetcode 66_Plus One C++
- C语言求最小公倍数和最大公约数三种算法
- c语言数组与指针的学习与思考
- C++成员变量的初始化顺序问题
- 快速幂(C语言实现) 超详细 (转载)
- c++数据类型相互转
- C++学习笔记(四)C++ 概述
- boost--timer库笔记
- C++Primer笔记 第一章