vc開啟並讀取txt檔案

2021-05-24 14:45:41 字數 2482 閱讀 9064

讓使用者選擇檔案進行開啟和儲存操作時,就要用到檔案開啟/儲存對話方塊。mfc的類「cfiledialog」用於實現這種功能。使用「cfiledialog」宣告乙個物件時,第乙個bool型引數用於指定檔案的開啟或儲存,當為true時將構造乙個檔案開啟對話方塊,為false時構造乙個檔案儲存對話方塊。  

在構造「cfiledialog」物件時,如果在引數中指定了「ofn_allowmultiselect」風格,則在此對話方塊中可以進行多選操作。此時要重點注意為此「cfiledialog」物件的「m_ofn.lpstrfile」分配一塊記憶體,用於儲存多選操作所返回的所有檔案路徑名,如果不進行分配或分配的記憶體過小就會導致操作失敗。下面這段程式演示了檔案開啟對話方塊的使用方法。  

cfiledialog mfiledlg(true, null,null, ofn_hidereadonly|ofn_over  

writeprompt|ofn_allowmultiselect,「all files (*.*)|*.*| |」, afxgetmainwnd());  

cstring str(「 」, 10000);  

mfiledlg.m_ofn.lpstrfile=str.getbuffer(10000);  

str.releasebuffer();  

position mpos=mfiledlg.getstartposition();  

cstring pathname(「 」, 128);  

cfilestatus status;  

while(mpos!=null)  

3. 檔案的讀寫  

檔案的讀寫非常重要,下面將重點進行介紹。檔案讀寫最普通的方法是直接使用「cfile」類進行,如檔案的讀寫可以使用下面的方法:  

//對檔案進行讀操作  

char sread[2];  

cfile mfile(_t(「user.txt」),cfile::moderead);  

if(mfile.getlength()<2)  

return;  

mfile.read(sread,2);  

mfile.close();  

//對檔案進行寫操作  

cfile mfile(_t(「user.txt」), cfile::modewrite|cfile::modecreate);  

mfile.write(sread,2);  

mfile.flush();  

mfile.close();  

雖然這種方法最為基本,但是它使用煩瑣,而且功能非常簡單。這裡推薦的是使用「carchive」,它的使用方法簡單且功能十分強大。首先還是用「cfile」宣告乙個物件,然後用這個物件的指標做引數宣告乙個「carchive」物件,這樣就可以非常方便地儲存各種複雜的資料型別了。它的使用方法見下例:  

//對檔案進行寫操作  

cstring strtemp;  

cfile mfile;  

mfile.open(「d://dd//try.try」,cfile::modecreate|cfile::modenotruncate|cfile::modewrite);  

carchive ar(&mfile,carchive::store);  

ar<>strtemp;  

ar.close();  

mfile.close();  

「carchive」的「<<」和「>>」操作符用於簡單資料型別的讀寫,對於「cobject」派生類的物件的訪問要使用readobject()和writeobject()。使用「carchive」的readclass()和writeclass()還可以進行類的讀寫,如:  

//儲存caboutdlg類  

ar.writeclass(runtime_class(caboutdlg));  

//讀取caboutdlg類  

cruntimeclass*mrunclass=ar.read  

class();  

//使用caboutdlg類  

cobject* pobject=mrunclass->createobject();  

((cdialog* )pobject)->domodal();  

雖然vc提供的文件/視結構中的文件也可進行這些操作,但是不容易理解、使用和管理,如果要進行的檔案操作只是簡單的讀寫整行的字串,建議使用「cstdiofile」,用它來進行此類操作非常方便,如下例:  

cstdiofile mfile;  

cfileexception mexcept;  

mfile.open( 「d://temp//aa.bat」, cfile::modewrite, &mexcept);  

cstring string=「i am a string.」;  

mfile.writestring(string);  

mfile.close();  

開啟並讀取檔案

開啟並讀取檔案 file open r c users administrator desktop walden.txt r lines file.readlines words for line in lines tmp list line.split for word in tmp list 對...

VC中怎麼讀取 txt檔案

一 cstdiofile 二 file f fopen file name mode char buff size fread buff,size,1,f fclose f 三 用mfc讀檔案 cfile file yourfile.txt cfile moderead char pbuf int ...

例項 讀取txt檔案並解析

一 我們得看看,在c 中如何開啟乙個檔案 1 得到開啟檔案的絕對路徑 mfc中,一般做法如下 1 char szfilter 文字檔案 txt txt all files 2 cstring filepath 3 cfiledialog fileopendlg true,txt null,ofn h...