青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 29,comments - 10,trackbacks - 0

 

對(duì)文件讀寫的三種方法
  1.C中
    FILE *pFile=fopen("1.txt","w");
fwrite("http://www.sunxin.org",1,strlen("http://www.sunxin.org"),pFile");
//fseek(pFile,0,SEEK_SET);
//fwrite("ftp:",1,strlen("ftp:"),pFile);
//fwrite("http://www.sunxin.org",1,strlen("http://www.sunxin.org"),pFile");
fclose(pFile);*/
//fflush(pFile);

表頭文件 #include<stdio.h>

FILE * fopen(const char * path,const char * mode);
  函數(shù)說明 參數(shù)path字符串包含欲打開的文件路徑及文件名,參數(shù)mode字符串則代表著流形態(tài)。
  mode有下列幾種形態(tài)字符串:

int fseek( FILE *stream, long offset, int origin );
  第一個(gè)參數(shù)stream為文件指針
  第二個(gè)參數(shù)offset為偏移量,整數(shù)表示正向偏移,負(fù)數(shù)表示負(fù)向偏移
  第三個(gè)參數(shù)origin設(shè)定從文件的哪里開始偏移,可能取值為:SEEK_CUR、 SEEK_END 或 SEEK_SET
  SEEK_CUR: 當(dāng)前位置
  SEEK_END: 文件結(jié)尾
  SEEK_SET: 文件開頭
  其中SEEK_CUR,SEEK_END和SEEK_SET依次為1,2和0

:fwrite(buffer,size,count,fp);
  (1)buffer:是一個(gè)指針,對(duì)fwrite來說,是要輸出數(shù)據(jù)的地址。
 ?。?)size:要寫入的字節(jié)數(shù);
  (3)count:要進(jìn)行寫入size字節(jié)的數(shù)據(jù)項(xiàng)的個(gè)數(shù);
 ?。?)fp:目標(biāo)文件指針。

int fread(void *ptr, int size, int nitems, FILE *stream);
  參 數(shù):用于接收數(shù)據(jù)的地址(指針)(ptr)
  單個(gè)元素的大小(size)
  元素個(gè)數(shù)(nitems)
  提供數(shù)據(jù)的文件指針(stream)

:int fflush(FILE *stream) 
         功 能: 清除文件緩沖區(qū),文件以寫方式打開時(shí)將緩沖區(qū)內(nèi)容寫入文件 

  2.C++中
/* ofstream ofs("4.txt");
ofs.write("http://www.sunxin.org",strlen("http://www.sunxin.org"));
ofs.close();*/
         要包括頭文件 "fstream.h"

  3.MFC中 用CFile類,哈哈!簡(jiǎn)單好用
CFileDialog fileDlg(FALSE);
fileDlg.m_ofn.lpstrTitle="我的文件保存對(duì)話框";
fileDlg.m_ofn.lpstrFilter="Text Files(*.txt)\0*.txt\0All Files(*.*)\0*.*\0\0";
fileDlg.m_ofn.lpstrDefExt="txt";
if(IDOK==fileDlg.DoModal())
{
  CFile file(fileDlg.GetFileName(),CFile::modeCreate | CFile::modeWrite);
  file.Write("http://www.sunxin.org",strlen("http://www.sunxin.org"));
  file.Close();
}

  CFile操作詳解
  各種關(guān)于文件的操作在程序設(shè)計(jì)中是十分常見,如果能對(duì)其各種操作都了如指掌,就可以根據(jù)實(shí)際情況找到最佳的解決方案,從而在較短的時(shí)間內(nèi)編寫出高效的代碼,因而熟練的掌握文件操作是十分重要的。本文將對(duì)Visual C++中有關(guān)文件操作進(jìn)行全面的介紹,并對(duì)在文件操作中經(jīng)常遇到的一些疑難問題進(jìn)行詳細(xì)的分析。
  1.文件的查找
  當(dāng)對(duì)一個(gè)文件操作時(shí),如果不知道該文件是否存在,就要首先進(jìn)行查找。MFC中有一個(gè)專門用來進(jìn)行文件查找的類CFileFind,使用它可以方便快捷地進(jìn)行文件的查找。下面這段代碼演示了這個(gè)類的最基本使用方法。
  CString strFileTitle;
  CFileFind finder;
  BOOL bWorking = finder.FindFile("C:\\windows\\sysbkup\\*.cab");
  while(bWorking)
  {
  bWorking=finder.FindNextFile();
  strFileTitle=finder.GetFileTitle();
  }
  2.文件的打開/保存對(duì)話框
  讓用戶選擇文件進(jìn)行打開和存儲(chǔ)操作時(shí),就要用到文件打開/保存對(duì)話框。MFC的類CFileDialog用于實(shí)現(xiàn)這種功能。使用CFileDialog聲明一個(gè)對(duì)象時(shí),第一個(gè)BOOL型參數(shù)用于指定文件的打開或保存,當(dāng)為TRUE時(shí)將構(gòu)造一個(gè)文件打開對(duì)話框,為FALSE時(shí)構(gòu)造一個(gè)文件保存對(duì)話框。
  在構(gòu)造CFileDialog對(duì)象時(shí),如果在參數(shù)中指定了OFN_ALLOWMULTISELECT風(fēng)格,則在此對(duì)話框中可以進(jìn)行多選操作。此時(shí)要重點(diǎn)注意為此CFileDialog對(duì)象的m_ofn.lpstrFile分配一塊內(nèi)存,用于存儲(chǔ)多選操作所返回的所有文件路徑名,如果不進(jìn)行分配或分配的內(nèi)存過小就會(huì)導(dǎo)致操作失敗。下面這段程序演示了文件打開對(duì)話框的使用方法。
  CFileDialog mFileDlg(TRUE,NULL,NULL,
  OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|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)
  {
  pathName=mFileDlg.GetNextPathName(mPos);
  CFile::GetStatus( pathName, status );
  }
  3.文件的讀寫
  文件的讀寫非常重要,下面將重點(diǎn)進(jìn)行介紹。文件讀寫的最普通的方法是直接使用CFile進(jìn)行,如文件的讀寫可以使用下面的方法:
  //對(duì)文件進(jìn)行讀操作
  char sRead[2];
  CFile mFile(_T("user.txt"),CFile::modeRead);
  if(mFile.GetLength()<2)
  return;
  mFile.Read(sRead,2);
  mFile.Close();
  //對(duì)文件進(jìn)行寫操作
  CFile mFile(_T("user.txt "), CFile::modeWrite|CFile::modeCreate);
  mFile.Write(sRead,2);
  mFile.Flush();
  mFile.Close();
  雖然這種方法最為基本,但是它的使用繁瑣,而且功能非常簡(jiǎn)單。我向你推薦的是使用CArchive,它的使用方法簡(jiǎn)單且功能十分強(qiáng)大。首先還是用CFile聲明一個(gè)對(duì)象,然后用這個(gè)對(duì)象的指針做參數(shù)聲明一個(gè)CArchive對(duì)象,你就可以非常方便地存儲(chǔ)各種復(fù)雜的數(shù)據(jù)類型了。它的使用方法見下例。
  //對(duì)文件進(jìn)行寫操作
  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();
  //對(duì)文件進(jìn)行讀操作
  CFile mFile;
  if(mFile.Open("d:\\dd\\try.TRY",CFile::modeRead)==0)
  return;
  CArchive ar(&mFile,CArchive::load);
  ar>>strTemp;
  ar.Close();
  mFile.Close();
  CArchive的 << 和>> 操作符用于簡(jiǎn)單數(shù)據(jù)類型的讀寫,對(duì)于CObject派生類的對(duì)象的存取要使用ReadObject()和WriteObject()。使用CArchive的ReadClass()和WriteClass()還可以進(jìn)行類的讀寫,如:
  //存儲(chǔ)CAboutDlg類
  ar.WriteClass(RUNTIME_CLASS(CAboutDlg));
  //讀取CAboutDlg類
  CRuntimeClass* mRunClass=ar.ReadClass();
  //使用CAboutDlg類
  CObject* pObject=mRunClass->CreateObject();
  ((CDialog* )pObject)->DoModal();
  雖然VC提供的文檔/視結(jié)構(gòu)中的文檔也可進(jìn)行這些操作,但是不容易理解、使用和管理,因此雖然很多VC入門的書上花費(fèi)大量篇幅講述文檔/視結(jié)構(gòu),但我建議你最好不要使用它的文檔。關(guān)于如何進(jìn)行文檔/視的分離有很多書介紹,包括非常著名的《Visual C++ 技術(shù)內(nèi)幕》。
  如果你要進(jìn)行的文件操作只是簡(jiǎn)單的讀寫整行的字符串,我建議你使用CStdioFile,用它來進(jìn)行此類操作非常方便,如下例。
  CStdioFile mFile;
  CFileException mExcept;
  mFile.Open( "d:\\temp\\aa.bat", CFile::modeWrite, &mExcept);
  CString string="I am a string.";
  mFile.WriteString(string);
  mFile.Close();
  4.臨時(shí)文件的使用
  正規(guī)軟件經(jīng)常用到臨時(shí)文件,你經(jīng)??梢詴?huì)看到C:\Windows\Temp目錄下有大量的擴(kuò)展名為tmp的文件,這些就是程序運(yùn)行是建立的臨時(shí)文件。臨時(shí)文件的使用方法基本與常規(guī)文件一樣,只是文件名應(yīng)該調(diào)用函數(shù)GetTempFileName()獲得。它的第一個(gè)參數(shù)是建立此臨時(shí)文件的路徑,第二個(gè)參數(shù)是建立臨時(shí)文件名的前綴,第四個(gè)參數(shù)用于得到建立的臨時(shí)文件名。得到此臨時(shí)文件名以后,你就可以用它來建立并操作文件了,如:
  char szTempPath[_MAX_PATH],szTempfile[_MAX_PATH];
  GetTempPath(_MAX_PATH, szTempPath);
  GetTempFileName(szTempPath,_T ("my_"),0,szTempfile);
  CFile m_tempFile(szTempfile,CFile:: modeCreate|CFile:: modeWrite);
  char m_char='a';
  m_tempFile.Write(&m_char,2);
  m_tempFile.Close();
  5.文件的復(fù)制、刪除等
  MFC中沒有提供直接進(jìn)行這些操作的功能,因而要使用SDK。SDK中的文件相關(guān)函數(shù)常用的有CopyFile()、CreateDirectory()、DeleteFile()、MoveFile()。它們的用法很簡(jiǎn)單,可參考MSDN。
 

  1,判斷文件是否存在
  access(filename,mode);
  2,對(duì)于不同用途又不同的文件操作,其中API函數(shù)CreateFile()也是比較有用處理方式,對(duì)于巨型文件很合適的其他的樓上的大都說了,不重復(fù)了.
  [1]顯示對(duì)話框,取得文件名
  CString FilePathName;
  CFileDialog dlg(TRUE);///TRUE為OPEN對(duì)話框,F(xiàn)ALSE為S***E AS對(duì)話框
  if (dlg.DoModal() == IDOK)
  FilePathName=dlg.GetPathName();
  相關(guān)信息:CFileDialog 用于取文件名的幾個(gè)成員函數(shù):
  假如選擇的文件是C:\WINDOWS\TEST.EXE
  則(1)GetPathName();取文件名全稱,包括完整路徑。取回C:\WINDOWS\TEST.EXE
  (2)GetFileTitle();取文件全名:TEST.EXE
  (3)GetFileName();取回TEST
  (4)GetFileExt();取擴(kuò)展名EXE
  [2]打開文件
  CFile file("C:\HELLO.TXT",CFile::modeRead);//只讀方式打開
  //CFile::modeRead可改為 CFile::modeWrite(只寫),
  //CFile::modeReadWrite(讀寫),CFile::modeCreate(新建)
  例子:
  {
  CFile file;
  file.Open("C:\HELLO.TXT",CFile::modeCreate|Cfile::modeWrite);
  }
  [3]移動(dòng)文件指針
  file.Seek(100,CFile::begin);///從文件頭開始往下移動(dòng)100字節(jié)
  file.Seek(-50,CFile::end);///從文件末尾往上移動(dòng)50字節(jié)
  file.Seek(-30,CFile::current);///從當(dāng)前位置往上移動(dòng)30字節(jié)
  file.SeekToBegin();///移到文件頭
  file.SeekToEnd();///移到文件尾
  [4]讀寫文件
  讀文件:
  char buffer[1000];
  file.Read(buffer,1000);
  寫文件:
  CString string("自強(qiáng)不息");
  file.Write(string,8);
  [5]關(guān)閉文件
  file.Close();

  HANDLE CreateFile(
  LPCTSTR lpFileName, //指向文件名的指針
  DWORD dwDesiredAccess, //訪問模式(寫/讀)
  DWORD dwShareMode, //共享模式
  LPSECURITY_ATTRIBUTES lpSecurityAttributes, //指向安全屬性的指針
  DWORD dwCreationDisposition, //如何創(chuàng)建
  DWORD dwFlagsAndAttributes, //文件屬性
  HANDLE hTemplateFile //用于復(fù)制文件句柄
  );
  參數(shù)列表
  lpFileName String 要打開的文件的名字
  dwDesiredAccess Long 如果為 GENERIC_READ 表示允許對(duì)設(shè)備進(jìn)行讀訪問;如果為 GENERIC_WRITE 表示允許對(duì)設(shè)備進(jìn)行寫訪問(可組合使用);如果為零,表示只允許獲取與一個(gè)設(shè)備有關(guān)的信息
  dwShareMode Long, 零表示不共享; FILE_SHARE_READ 和/或 FILE_SHARE_WRITE 表示允許對(duì)文件進(jìn)行共享訪問
  lpSecurityAttributes SECURITY_ATTRIBUTES, 指向一個(gè)SECURITY_ATTRIBUTES結(jié)構(gòu)的指針,定義了文件的安全特性(如果操作系統(tǒng)支持的話)
  dwCreationDisposition Long,下述常數(shù)之一:
  CREATE_NEW 創(chuàng)建文件;如文件存在則會(huì)出錯(cuò)
  CREATE_ALWAYS 創(chuàng)建文件,會(huì)改寫前一個(gè)文件
  OPEN_EXISTING 文件必須已經(jīng)存在。由設(shè)備提出要求
  OPEN_ALWAYS 如文件不存在則創(chuàng)建它
  TRUNCATE_EXISTING 講現(xiàn)有文件縮短為零長(zhǎng)度
  dwFlagsAndAttributes Long, 一個(gè)或多個(gè)下述常數(shù)
  FILE_ATTRIBUTE_ARCHIVE 標(biāo)記歸檔屬性
  FILE_ATTRIBUTE_COMPRESSED 將文件標(biāo)記為已壓縮,或者標(biāo)記為文件在目錄中的默認(rèn)壓縮方式
  FILE_ATTRIBUTE_NORMAL 默認(rèn)屬性
  FILE_ATTRIBUTE_HIDDEN 隱藏文件或目錄
  FILE_ATTRIBUTE_READONLY 文件為只讀
  FILE_ATTRIBUTE_SYSTEM 文件為系統(tǒng)文件
  FILE_FLAG_WRITE_THROUGH 操作系統(tǒng)不得推遲對(duì)文件的寫操作
  FILE_FLAG_OVERLAPPED 允許對(duì)文件進(jìn)行重疊操作
  FILE_FLAG_NO_BUFFERING 禁止對(duì)文件進(jìn)行緩沖處理。文件只能寫入磁盤卷的扇區(qū)塊
  FILE_FLAG_RANDOM_ACCESS 針對(duì)隨機(jī)訪問對(duì)文件緩沖進(jìn)行優(yōu)化
  FILE_FLAG_SEQUENTIAL_SCAN 針對(duì)連續(xù)訪問對(duì)文件緩沖進(jìn)行優(yōu)化
  FILE_FLAG_DELETE_ON_CLOSE 關(guān)閉了上一次打開的句柄后,將文件刪除。特別適合臨時(shí)文件
posted on 2009-07-29 10:07 The_Moment 閱讀(11826) 評(píng)論(0)  編輯 收藏 引用 所屬分類: VC理論
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久久噜噜噜久久狠狠50岁| 国产一区二区精品久久| 在线视频日韩| 亚洲日本一区二区三区| 欧美aa国产视频| 欧美激情视频网站| 亚洲免费观看高清完整版在线观看| 亚洲乱码久久| 亚洲视频精品在线| 久久精品国产亚洲aⅴ| 久久人人97超碰国产公开结果| 久久久伊人欧美| 欧美黄在线观看| 欧美午夜精品久久久久久浪潮| 国产精品视频免费观看www| 国产亚洲午夜| 夜夜嗨av色一区二区不卡| 亚洲免费网址| 麻豆91精品| 亚洲美女在线国产| 欧美在线观看一区二区| 欧美激情视频给我| 国产亚洲成精品久久| 亚洲人成人一区二区在线观看| 亚洲午夜在线视频| 免费人成精品欧美精品| 在线综合亚洲欧美在线视频| 久久久久国产精品人| 欧美日韩高清在线播放| 国一区二区在线观看| 夜夜嗨av一区二区三区四季av | 亚洲国产高潮在线观看| 亚洲视频网在线直播| 久久久91精品国产一区二区三区| 欧美精品九九| 精品成人a区在线观看| 中国成人黄色视屏| 欧美国产综合视频| 欧美中文字幕不卡| 国产精品欧美激情| 99v久久综合狠狠综合久久| 久久综合九色| 亚洲欧美另类国产| 国产精品国色综合久久| 亚洲精品久久久蜜桃| 嫩草伊人久久精品少妇av杨幂| 亚洲精品色婷婷福利天堂| 欧美一区在线看| 国产精品高清一区二区三区| 亚洲片国产一区一级在线观看| 欧美在线看片| 亚洲一区欧美| 国产精品丝袜白浆摸在线| 99国产精品久久久久久久成人热| 久久只精品国产| 午夜视黄欧洲亚洲| 国产欧美二区| 欧美一区二区三区播放老司机| 99ri日韩精品视频| 欧美日韩伊人| 午夜精品福利视频| 亚洲免费影视第一页| 国产欧美亚洲视频| 久久久久高清| 久久精品国产综合精品| 国产一区二区三区四区三区四| 欧美在线视频不卡| 午夜精品福利视频| 黄色国产精品| 牛夜精品久久久久久久99黑人| 久久久久久亚洲精品杨幂换脸| 国模叶桐国产精品一区| 久久日韩粉嫩一区二区三区| 久久久精品免费视频| 尤物精品国产第一福利三区| 麻豆成人综合网| 女人色偷偷aa久久天堂| 9久re热视频在线精品| 亚洲视频欧美在线| 狠狠爱成人网| 亚洲欧洲在线一区| 国产精品国产亚洲精品看不卡15 | 亚洲精品国产系列| 亚洲国产日本| 国产精品久久久久久久7电影| 免费成年人欧美视频| 亚洲久久成人| 在线视频精品一| 国语自产在线不卡| 最新69国产成人精品视频免费| 欧美日韩免费在线视频| 久久九九久精品国产免费直播| 久久综合免费视频影院| 亚洲午夜久久久久久久久电影院| 亚洲欧美日韩一区在线| 亚洲欧洲在线一区| 亚洲综合色在线| 亚洲精品小视频在线观看| 亚洲天堂成人在线观看| 影音先锋在线一区| 国产精品99久久久久久久女警| 精品成人乱色一区二区| 一区二区国产精品| 亚洲国产成人在线| 香蕉亚洲视频| 欧美ab在线视频| 国产欧美日韩视频一区二区三区| 久久国产视频网| 欧美日本精品一区二区三区| 久久久久久夜精品精品免费| 欧美日韩成人一区| 欧美h视频在线| 国产精品普通话对白| 国产欧美日韩免费| 91久久嫩草影院一区二区| 国产专区综合网| 中国亚洲黄色| 99这里只有久久精品视频| 久久九九国产精品| 欧美在线播放视频| 国产精品高潮呻吟视频| 亚洲精品国产精品乱码不99 | 激情久久久久久久久久久久久久久久| 一本色道久久综合亚洲二区三区| 亚洲电影在线| 久久精品国产2020观看福利| 亚洲欧美在线免费观看| 欧美日韩亚洲成人| 亚洲精品乱码久久久久久蜜桃麻豆 | 亚洲理论在线| 一区二区高清在线| 美女日韩在线中文字幕| 久久国产欧美| 国产日韩欧美视频在线| 亚洲欧美国产日韩天堂区| 午夜精品成人在线| 国产欧美另类| 午夜精品美女久久久久av福利| 欧美一区在线看| 国产日韩在线一区| 久久国产精品亚洲va麻豆| 久久综合国产精品台湾中文娱乐网| 国产一区二区精品| 久久这里有精品15一区二区三区 | 亚洲视频欧美视频| 欧美激情a∨在线视频播放| 亚洲国产午夜| 亚洲视频免费在线| 国产精品天天摸av网| 亚洲欧美日韩成人高清在线一区| 亚洲男人影院| 国产在线乱码一区二区三区| 久久精品视频亚洲| 欧美激情91| 亚洲视频一区| 国产亚洲成人一区| 免费高清在线一区| 99精品欧美一区二区三区综合在线| 亚洲小视频在线观看| 国产日韩精品在线播放| 亚洲视频在线看| 欧美诱惑福利视频| 裸体歌舞表演一区二区 | 先锋影音久久久| 国产麻豆精品久久一二三| 欧美诱惑福利视频| 亚洲国产日韩欧美| 欧美在线精品免播放器视频| 在线观看国产成人av片| 欧美日韩少妇| 西西人体一区二区| 91久久亚洲| 久久精品国产精品亚洲综合| 亚洲另类在线一区| 国产欧美日韩一区| 欧美成人综合在线| 午夜视频一区| 99视频+国产日韩欧美| 久久综合狠狠| 午夜在线成人av| 日韩视频免费在线| 国产资源精品在线观看| 欧美日韩亚洲综合| 久久久噜噜噜| 亚洲欧美日韩系列| 9色精品在线| 亚洲福利av| 久久久人成影片一区二区三区观看 | 午夜精品国产精品大乳美女| 亚洲大胆视频| 久久成年人视频| 亚洲视频在线观看网站| 91久久久久久| 精品99一区二区| 国产精品自拍网站| 欧美日韩亚洲一区在线观看| 欧美aa在线视频| 久久精品一二三区| 性欧美8khd高清极品| 亚洲一区亚洲二区|