亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

CStdioFile的用法詳細解析

2020-01-26 15:52:13
字體:
來源:轉載
供稿:網友

關于CStdioFile
CStdioFile繼承自CFile,一個CStdioFile 對象代表一個用運行時函數fopen 打開的C 運行時流式文件。

流式文件是被緩沖的,而且可以以文本方式(缺?。┗蚨M制方式打開。文本方式提供對硬回車―換行符對的特殊處理。當你將一個換行符(0x0A)寫入一個文本方式的CStdioFile 對象時,字節對(0x0D,0x0A)被發送給該文件。當你讀一個文件時,字節對(0x0D,0x0A)被翻譯為一個字節(0x0A)。

CStdioFile 不支持Duplicate,LockRange,和UnlockRange 這幾個CFile 函數。如果在CStdioFile 中調用了這幾個函數,將會出現CNoSupported 異常。
CStdioFile::ReadString(LPTSTR lpsz, UINT nMax);

讀取一行文本到緩沖區,遇到“0x0D,0x0A”時停止讀取,并且去掉硬回車“0x0D”,保留換行符“0x0A”,在字符串末尾添加“/0”(0x00)。nMax個字符里包含0x00這個字符。

分析如下:
1)如果nMax <= 字符數,讀取(nMax-1)個字符 + 0x00
2)如果nMax    = 字符數 + 1,讀取nMax個字符 + 0x00
3)如果nMax    > 字符數,讀取nMax個字符 + 0x0A + 0x00

CStdioFile::ReadString(CString &rString);(重載)
讀取一行文本到rString,遇到回車換行符停止讀取?;剀嚭蛽Q行符不讀到rString,而且末尾也沒有添加“/0”。
CStdioFile::WriteString( LPCTSTR lpsz );(不支持CString直接寫入)

將一個緩沖區中的數據寫入與CStdioFile 對象關聯的文件中。結束的空字符(“/0”)不被寫入該文件。lpsz 中的所有換行符都被以一個硬回車換行符對寫入該文件,即“/n”被轉化成“/r/n”寫入到文件里。

CFile的派生類CStdioFile提供了對文件進行流式的操作功能。其中函數void CStdioFile::WriteString( LPCTSTR lpsz )寫入一個字符串,需要給字符串lpsz的末尾加上換行標志”/r/n”;函數bool CStdioFile::ReadString(CString &rString )從文件中讀取一行,如果文件未讀完返回true,否則返回false。 

比如:寫入文件的例子

復制代碼 代碼如下:

//創建文件
CStdioFile file;
file.Open("ts.txt",CFile::modeCreate|CFile::modeWrite);
//寫入文件
CString str;
str.Format("%s/r/n","hello!I am talkingmute!");
file.Seek(0,CFile::end);
file.WriteString( str );
//關閉文件
file.Close();

比如:讀文件的例子
復制代碼 代碼如下:

CString strText = “”;
CString szLine = “”;
//打開文件
CStdioFile file;
file.Open("ts.txt",CFile::modeRead);
//逐行讀取字符串
while( file.ReadString( szLine ) )
{
strText += szLine;
}
MessageBox(strText);
//關閉文件
file.Close();

CStdioFile類的聲明保存再afx.h頭文件中。
CStdioFile類不支持CFile類中的Duplicate、LockRange、UnlockRange函數,如果你使用了,會得到CNotSupportedException類的錯誤。
CStringFile類默認的是按照Text模式操作文件。CFile 類默認的是按照二進制模式操作文件。

這里大致說明一下二進制模式和Text模式的區別。
二進制模式:
對于一行的結尾我們必須輸入”/r/n”,才能表示回車換行的效果。

Text模式:”/r”回車的工作是自動完成的,我們只需要寫入”/n”即可。所以我們再使用文本模式時要主要,當我們從外部讀入文件時,”/r/n”會被翻譯成”/n”,寫入文件時,我們對于回車換行只需提供”/n”,即可,”/r/n”會被寫入到文件中。
m_pStream成員變量:
打開文件的指針。

構造函數:
CStdioFile();
CStdioFile(FILE *pOpenStream);
CStdioFile(LPCTSTR lpFileName, UINT nOpenFlags);
throw(CFileException);

FILE *pOpenStream:指的是c運行函數fopen調用后返回的文件指針。
LPCTSTR lpFileName:指的是被打開的文件(絕對地址或相對地址)
UINT nOpenFlags:指的是CFile類中所描述的打開文件的方式。

virtual LPTSTR ReadString(LPTSTR lpsz, UINT nMax);
throw(CFileException);

如果使用該函數讀取文本文件,當遇到”/r/n”,停止讀取,并去掉”/r”,保留”/n”,并在字符串尾部增加”/0”,nMax的長度包含有”/0”字符,

實際的分析如下:
如果nMax <= 字符數,讀取(nMax-1)個字符+0x00;
如果nMax = 字符數 + 1,讀取nMax個字符+0x00;
如果nMax > 字符數,讀取nMax個字符+0x0A(”/n”) + 0x00;
如果文件有多行,則當文件沒有讀完時,返回NOT NULL,讀到文件尾,返回NULL。

BOOL ReadString(CString& rString);
throw(CFileException);

讀取一行文本到rString中,遇到回車換行符停止讀取,回車和換行符均不讀到rString中,尾部也不添加”0x00”。
如果文件有多行,則當文件沒有讀完時,返回TRUE,讀到文件尾,返回FALSE。

virtual void WriteString(LPTSTR lpsz);
throw(CFileException);

將緩沖區中的數據寫入到與CStdioFile對象相關聯的文件中,不支持CString類型數據寫入,結束的”/0”不被寫入到文件中,lpsz緩沖區中的所有

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲午夜性刺激影院| 欲色天天网综合久久| 国产精品久久久999| 亚洲欧美日韩精品久久亚洲区| 亚洲国产精品美女| 久久天堂电影网| 国产精品久久久久久久电影| 国产精品激情av电影在线观看| 国产精品欧美久久久| 九色精品免费永久在线| 久久精品国产一区二区电影| 亚洲精品小视频在线观看| 欧美性20hd另类| 精品成人av一区| 亚洲少妇中文在线| 欧美激情aaaa| 日韩av在线一区| 亚洲天堂一区二区三区| 性欧美xxxx| 日本国产精品视频| 国产亚洲美女精品久久久| 成人免费视频xnxx.com| 久久亚洲影音av资源网| 亚洲欧美www| 激情懂色av一区av二区av| 亚洲级视频在线观看免费1级| 在线观看国产欧美| 国产精品一久久香蕉国产线看观看| 久久99久久99精品免观看粉嫩| 日韩精品福利在线| 91高清视频免费观看| 亚洲第一页在线| 欧美日韩中文字幕在线视频| 亚洲一区二区自拍| 欧美激情视频一区| 97国产精品人人爽人人做| 亚洲成人激情在线| 北条麻妃一区二区三区中文字幕| 日韩精品在线看| 国产精品成人一区二区三区吃奶| 欧美成人午夜激情视频| 亚洲电影免费观看高清| 日韩电影在线观看中文字幕| 欧美日韩另类在线| 国产美女扒开尿口久久久| 国产午夜精品美女视频明星a级| 日韩电影在线观看免费| 日韩av在线免费看| 日韩av有码在线| 久久久久久久av| 欧美激情欧美激情在线五月| 亚洲美女自拍视频| 久久久久999| 日韩视频免费中文字幕| 日韩欧美国产激情| 久久精品99久久久久久久久| 欧美成人在线影院| 欧美极品少妇与黑人| 欧美丰满少妇xxxx| 亚洲free性xxxx护士hd| 欧美精品免费在线| 97人洗澡人人免费公开视频碰碰碰| 成人精品在线观看| 色阁综合伊人av| 亚洲免费小视频| 国产成人精品999| 日韩在线欧美在线| 欧美疯狂做受xxxx高潮| 久久亚洲综合国产精品99麻豆精品福利| 欧美另类交人妖| 亚洲无av在线中文字幕| 97精品国产aⅴ7777| 91精品国产网站| 日韩中文字幕久久| 在线播放国产精品| 久久色精品视频| 国产亚洲精品日韩| 粗暴蹂躏中文一区二区三区| 亚洲第一综合天堂另类专| 国产成人在线亚洲欧美| 国产精品入口免费视频一| 国产精品一区二区久久| 欧美俄罗斯性视频| 日韩欧美亚洲国产一区| 国产三级精品网站| 久久综合五月天| 91香蕉嫩草神马影院在线观看| 成人免费看片视频| 欧美国产精品日韩| 国产精品久久一区| 亚洲精品97久久| 4k岛国日韩精品**专区| 97视频在线观看免费| 国产精品国内视频| 亚洲精品v天堂中文字幕| 97香蕉久久超级碰碰高清版| 日韩在线欧美在线| 欧美午夜视频在线观看| 自拍视频国产精品| 中文字幕精品国产| 日本老师69xxx| 欧美激情按摩在线| 国产精品白丝jk喷水视频一区| 久久久久久久久久久久av| 久久免费视频观看| 欧美国产日韩二区| 国产成人精品一区二区| 日本精品一区二区三区在线播放视频| 久久久噜噜噜久久| 国产精品96久久久久久又黄又硬| 久久97精品久久久久久久不卡| 日韩在线国产精品| 麻豆国产va免费精品高清在线| 国模叶桐国产精品一区| 亚洲欧美激情在线视频| 亚洲天堂第一页| 日韩免费在线免费观看| 亚洲精品资源美女情侣酒店| 日韩亚洲成人av在线| 久久久久久久久久久久久久久久久久av| 久久99久久99精品中文字幕| 亚洲欧洲偷拍精品| 亚洲在线一区二区| 成人免费看黄网站| 国产精品旅馆在线| 欧美性69xxxx肥| 丝袜情趣国产精品| 一区二区欧美在线| 欧美最猛性xxxxx(亚洲精品)| 亚洲综合在线做性| 欧美第一淫aaasss性| 日韩中文字幕在线播放| 欧美精品在线观看91| 97视频国产在线| 成人网页在线免费观看| 秋霞成人午夜鲁丝一区二区三区| 国产欧洲精品视频| 97国产真实伦对白精彩视频8| 精品国产91久久久久久老师| 国产精品精品久久久久久| 亚洲精品视频网上网址在线观看| 欧美乱大交做爰xxxⅹ性3| 97视频免费在线观看| 97在线精品视频| 国产啪精品视频网站| 8x海外华人永久免费日韩内陆视频| 欧美成人全部免费| 麻豆国产va免费精品高清在线| 国产精品中文字幕在线| 欧美一级视频免费在线观看| 2020久久国产精品| 亚洲成人精品av| 日本精品视频在线| 国模精品视频一区二区三区| 久久久久久久久综合| 欧美日韩国产第一页| 欧美激情一二区| 国产日韩中文字幕在线| 久久大大胆人体| 日韩成人av网址| 国产99久久精品一区二区 夜夜躁日日躁| 91精品国产91久久久| 91欧美精品成人综合在线观看| 欧美综合在线第二页|