C++ File文件處理 相關(guān)函數(shù)方法
發(fā)布時(shí)間:2023-12-07 13:35:01
在C++程序開發(fā)中,也會(huì)遇到很多文件上傳,文件寫入等對(duì)于文件的操作業(yè)務(wù)需要開發(fā),文件處理也是任何應(yīng)用程序的重要組成部分。C++有幾種創(chuàng)建,讀取,更新和刪除文件的方法。本文主要介紹C++ File文件操作常用的函數(shù)方法。
1、常用的文件打開方式(打開模式標(biāo)記)
模式標(biāo)記 | 適用對(duì)象 | 作用 |
ios::in | ifstream fstream | 打開文件用于讀取數(shù)據(jù)。如果 文件不存在,則打開出錯(cuò)。 |
ios::out | ofstream fstream | 打開文件用于寫入數(shù)據(jù)。如果 文件不存在,則新建該 文件;如果文件原來(lái)就存在,則 打開時(shí)清除原來(lái)的內(nèi)容。 |
ios::app | ofstream fstream | 打開文件,用于在其尾部添加數(shù)據(jù)。 如果文件不存在,則新建該文件。 |
ios::ate | ifstream | 打開一個(gè)已有的文件 ,并將文件讀指針指向 文件末尾(讀寫指 的概念后面解釋)。 如果文件不存在,則打開出錯(cuò)。 |
ios:: trunc | ofstream | 打開文件時(shí)會(huì)清空內(nèi)部存儲(chǔ)的所有數(shù)據(jù), 單獨(dú)使用時(shí)與 ios::out 相同。 |
ios::binary | ifstream ofstream fstream | 以二進(jìn)制方式 打開文件。若不指定此模式, 則以文本模式打開。 |
ios::in | ios::out | fstream | 打開已存在的文件 ,既可讀取其內(nèi)容,也可向其寫入數(shù)據(jù)。 文件剛打開時(shí),原有內(nèi)容保持不變。 如果文件不存在,則打開出錯(cuò)。 |
ios::in | ios::out | ofstream | 打開已存在的文件 ,可以向其寫入數(shù)據(jù)。文件 剛打開時(shí),原有內(nèi)容保持不變。如果 文件不存在,則打開出錯(cuò)。 |
ios::in | ios::out | ios::trunc | fstream | 打開文件,既可讀取其內(nèi)容, 也可向其寫入數(shù)據(jù)。如果 文件本來(lái)就存在,則打開 時(shí)清除原來(lái)的內(nèi)容;如果 文件不存在,則新建該文件。 |
注意:可以用“或”把以上屬性連接起來(lái),如,ios::out|ios::binary
。文件的打開模式標(biāo)記代表了文件的使用方式,這些標(biāo)記可以單獨(dú)使用,也可以組合使用。
2、C++ 文件支持文件的輸入輸出的類
1)ofstream:寫操作,輸出文件類。
2)ifstream:讀操作,輸入文件類
3)fstream:可同時(shí)讀寫的文件類。
3、文件打開與關(guān)閉相關(guān)函數(shù)方法
1)文件打開函數(shù)
ofstream
、ifstream
、fstream
都有open
成員函數(shù):
void open(const char* szFileName, int mode)
szFileName
參數(shù)是指向文件名的指針,mode
參數(shù)是文件的打開模式標(biāo)記。
例如,
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream inFile;
inFile.open("c:\\tmp\\test.txt", ios::in);
if (inFile) //true說(shuō)明文件打開成功
inFile.close();
else
cout << "test.txt doesn't exist" << endl;
ofstream oFile;
oFile.open("test1.txt", ios::out);
if (!oFile) //true說(shuō)明文件打開出錯(cuò)
cout << "error 1" << endl;
else
oFile.close();
oFile.open("tmp\\test2.txt", ios::out | ios::in);
if (oFile) //true說(shuō)明文件打開成功
oFile.close();
else
cout << "error 2" << endl;
fstream ioFile;
ioFile.open("..\\test3.txt", ios::out | ios::in | ios::trunc);
if (!ioFile)
cout << "error 3" << endl;
else
ioFile.close();
return 0;
}
2)文件關(guān)閉函數(shù)
調(diào)用 open()
方法打開文件,是文件流對(duì)象和文件之間建立關(guān)聯(lián)的過(guò)程。調(diào)用 close()
方法關(guān)閉已打開的文件,該文件流并會(huì)被銷毀,其后續(xù)還可用于關(guān)聯(lián)其它的文件。
語(yǔ)法:
void close( )
例如,
#include <fstream>
using namespace std;
int main()
{
const char *url="www.cjavapy.com";
ofstream outFile("site.txt", ios::out);
//向 url.txt 文件中寫入字符串
outFile.write(url, 30);
//關(guān)閉已打開的文件
outFile.close();
return 0;
}
- 上一篇:C++ 預(yù)處理命令
- 下一篇:C++ File文件處理 刪除文件和文件夾目錄