C++ 文件输入输出(二)

来源:互联网 发布:学数据库有前途吗 编辑:程序博客网 时间:2024/05/21 10:22
///输入/输出流///到目前为止,所展示的只是单一的打开文件的途径:要么为读取而打开,要么为写入而打开。///但文件还可以以其它方式打开。迄今,你应当已经认识了下面的方法:///ifstream OpenFile(“love.txt”);///这可不是唯一的方法!以上的代码创建一个类ifstream的对象,并将文件的名字传递给它的构造函数。///但实际上,还存在有不少的重载的构造函数,它们可以接受不止一个的参数。///同时,还有一个open()函数可以做同样的事情。下面是一个以上代码的示例,///但它使用了open()函数:///ifstream OpenFile;///OpenFile.open("love.txt");///它们之间没有区别!///只不过如果你要创建一个文件句柄但不想立刻给它指定一个文件名,那么你可以使用open()函数///过后进行指定。顺便再给出一个要使用open()函数的例子:如果你打开一个文件,然后关闭了它,///又打算用同一个文件句柄打开另一个文件,这样一来,你将需要使用open()函数。///考虑以下的代码示例:/*#include <fstream>#include<iostream>using namespace std;void read(ifstream &T) //pass the file stream to the function{//the method to read a file, that I showed you before    char ch;    while(!T.eof())    {       T.get(ch);       cout << ch;    }    cout << endl << "--------" << endl;}int main(){    ifstream T("file1.txt");    read(T);    T.close();    T.open("file2.txt");    read(T);    T.close();    T.open("love.txt");    read(T);    T.close();    return 0;}*////只要file1.txt和file2.txt并存储了文本内容,你将看到这些内容。/*taek woon oppa salanghei!!!--------gikwang oppa salanghei!!!--------Woohyun oppa salanghei!!!--------Process returned 0 (0x0)   execution time : 0.264 sPress any key to continue.*////文件名并不是你唯一可以向open()函数或者构造函数(其实都一样)传递的参数。下面是一个函数///原型:///ifstream OpenFile(char *filename, int open_mode);///你应当知道filename表示文件的名称(一个字符串),而新出现的则是open_mode(打开模式)。///open_mode的值用来定义以怎样的方式打开文件。下面是打开模式的列表:/*名称描述ios::in打开一个可读取文件ios::out打开一个可写入文件ios::app你写入的所有数据将被追加到文件的末尾,此方式使用ios::outios::ate你写入的所有数据将被追加到文件的末尾,此方式不使用ios::outios::trunk删除文件原来已存在的内容(清空文件)ios::nocreate如果要打开的文件并不存在,那么以此参数调用open()函数将无法进行。ios::noreplace如果要打开的文件已存在,试图用open()函数打开时将返回一个错误。ios::binary以二进制的形式打开一个文件。*////下面是一个关于如何使用打开模式的例子:/*#include <fstream>#include<iostream>using namespace std;int main(){    ofstream SaveFile("file1.txt", ios::ate);    SaveFile << "That's new!\n";    SaveFile.close();    return 0;}*////正如你在表中所看到的:使用ios::ate将会从文件的末尾开始执行写入。如果我没有使用它,///原来的文件内容将会被重新写入的内容覆盖掉。不过既然我已经使用了它,那么我只会在原文件的末尾///进行添加。所以,如果file1.txt原有的内容是这样:///yosoep oppa salanghei !!!///那么执行上面的代码后,程序将会为它添上“That’s new!”,因此它看起来将变成这样:///yosoep oppa salanghei!!!That’s new!///*********!!!但是 但是  我的输出 却是 : That’s new!         ******************晕晕晕****

0 0
原创粉丝点击