檔案讀取c

2021-09-25 02:29:27 字數 2521 閱讀 2282

c++中的檔案讀取主要用過和兩個標頭檔案中的函式來操作

stat函式主要用來讀取檔案資訊,

ifstream函式主要用來開啟檔案,將檔案轉換為流,從而對檔案進行讀寫操作。

標頭檔案主要包含四個類,分別為ifstream,ofstream,fstream,

函式:voidopen(constchar* __s, ios_base::openmode __mode = ios_base::in | ios_base::out);

voidopen(conststring& __s, ios_base::openmode __mode = ios_base::in | ios_base::out);

open函式開啟檔案,開啟方式分為(mode)

ios::in

開啟輸入(讀)檔案

ios::out

開啟輸出(寫)檔案

ios::ate

初始位置為檔案尾

所有寫入附加在檔案末尾

ios::trunc

如果所操作的檔案已經存在了,就先刪除

ios::binary

以二進位制開啟

開啟檔案屬性分為(prot)

普通檔案,開啟操作

唯讀檔案

隱含檔案

系統檔案

voidclose(); 關閉檔案操作

void

basic_ofstream<_chart, _traits>::close()

判斷檔案狀態的函式

is_open():檔案是否正常開啟,正常開啟返回true

bad():讀寫過程中是否出錯(操作物件沒有開啟,寫入的裝置沒有空間)

fail():讀寫過程中是否出錯(操作物件沒有開啟,寫入的裝置沒有空間,格式錯誤--比如讀入型別不匹配) 

eof():讀檔案到達檔案末尾,返回true

good():判斷檔案讀寫正常且沒有到檔案末尾。

檔案定位函式

輸入流操作seekg(),tellg(),

輸出流操作tellp().seekp(),

seekg()函式檔案定位操作

seekg()是對輸入檔案定位,它有兩個引數:第乙個引數是偏移量,第二個引數是基位址。

對於第乙個引數,可以是正負數值,正的表示向後偏移,負的表示向前偏移。而第二個引數可以是:

ios::beg:表示輸入流的開始位置

ios::cur:表示輸入流的當前位置

ios::end:表示輸入流的結束位置

tellg()函式不需要帶引數,它返回當前定位指標的位置,也代表著輸入流的大小。

struct stat

;s_ifmt   0170000    檔案型別的位遮罩

s_ifsock 0140000    套接字

s_iflnk 0120000     符號連線

s_ifreg 0100000     一般檔案

s_ifblk 0060000     區塊裝置

s_ifdir 0040000     目錄

s_ifchr 0020000     字元裝置

s_ififo 0010000     先進先出

​s_isuid 04000     檔案的(set user-id on execution)位

s_isgid 02000     檔案的(set group-id on execution)位

s_isvtx 01000     檔案的sticky位

​s_irusr(s_iread) 00400     檔案所有者具可讀取許可權

s_iwusr(s_iwrite)00200     檔案所有者具可寫入許可權

s_ixusr(s_iexec) 00100     檔案所有者具可執行許可權

​s_irgrp 00040             使用者組具可讀取許可權

s_iwgrp 00020             使用者組具可寫入許可權

s_ixgrp 00010             使用者組具可執行許可權

​s_iroth 00004             其他使用者具可讀取許可權

s_iwoth 00002             其他使用者具可寫入許可權

s_ixoth 00001             其他使用者具可執行許可權

​上述的檔案型別在posix中定義了檢查這些型別的巨集定義:

s_islnk (st_mode)    判斷是否為符號連線

s_isreg (st_mode)    是否為一般檔案

s_isdir (st_mode)    是否為目錄

s_ischr (st_mode)    是否為字元裝置檔案

s_isblk (s3e)        是否為先進先出

s_issock (st_mode)   是否為socket

stat函式主要用於獲取檔案的資訊而並不對檔案進行操作。

C 讀取檔案

using system using system.collections.generic using system.componentmodel using system.data using system.drawing using system.text using system.window...

c 讀取檔案

用c 讀取檔案內容中文是亂碼的解決方法 方法1 streamreader din new streamreader c 1.txt system.text.encoding.getencoding gb2312 string html while din.peek 1 din.close 方法2 s...

C 檔案讀取

一.fileinfo類,檢視檔案屬性,建立檔案,移動檔案,重新命名檔案等資訊。directoryinfo類,用來獲取資料夾的資訊。二.file讀寫檔案,file.readalllines 讀取所有行string陣列 file.readalltext 讀取整個檔案string file.readall...