1. VC寫文件
方法1:
try{
CFile f;
f.Open("D:/test.txt",CFile::modeWrite);
// char myBuf[1024]={'1','2','3','4'};//初始化4個
//memset(myBuf, '0', sizeof(txtBuf));
f.SeekToEnd();//用來標注寫入位置在最後 即在末尾寫入不覆蓋原有內容
// f.Write(&myBuf,4);//sizeof(myBuf)或1024或大於4會出現許多空格
f.Write("the end",sizeof("the end"));
f.Flush();
f.Close();
}catch(...){
MessageBox("未成功寫入");
}
方法2:使用CStdioFile CStdioFile 為CFile子類故可使用CFile所有方法
CStdioFile sf;
CString str="abcdef12345gg";
sf.Open("D:/test.txt",CFile::modeWrite);
sf.SeekToEnd();
sf.WriteString("1234567890");//CStdioFile 的方法
sf.Flush();
sf.Close();
備註:1:方法2 未加try catch 建議加上
2:方法1 先不要理開頭有//的行,那是我用來測試的
3: c++兼容c 可以試一試fopen fwrite等方法
本以為很簡單,有點高估自己啦,自己反倒學了不少知識
2. CFile怎樣判斷是否讀到文件結束了
1,先獲取內容長度,在搜索\r\n得到最後一行位置,在把指針調整到那裡。
2,讀文件版是有個文件指針,調用權Read時文件指針制動向前移動。
3,下次再調用是是接著上次文件指針讀。mile.Read(sRead,2),第二個參數指定了最多讀幾個字元,自己指定了讀兩個字元。例如,
CFile fr;
...//打開文件
char readbuf[65535];
int n;
while((n = fr.Read(readbuf, 65535)) > 0)//讀文件的長度大於0,說明文件沒有結束,否則已經結束了
{
//操作
}
3. 怎麼在文件末尾寫數據我用CFile::SeekToEnd好像不行。
打開文件的方式中,有一種是在文件尾,寫新的數據
-------------------------------
MFC的話,你看是不是用這個
CFile::modeNoTruncate Combine this value with modeCreate. If the file being created already exists, it is not truncated to 0 length. Furthermore, if the file being created already exists, the underlying file pointer will point to the beginning of the file. This flag guarantees the file to open, either as a newly created file or as an existing file. This might be useful, for example, when opening a settings file that may or may not exist already. This option applies to CStdioFile as well.
4. C語言裡面的二進制文件的結束標志是什麼
1、可以使用feof函數來判斷二進制文件是否結束。
EOF是文本文件結束的標志。在文本文件中,數據是以字元的ASCⅡ代碼值的形式存放,普通字元的ASCⅡ代碼的范圍是32到127(十進制),EOF的16進制代碼為0xFF(十進制為-1),因此可以用EOF作為文件結束標志。當把數據以二進制形式存放到文件中時,就會有-1值的出現,因此不能採用EOF作為二進制文件的結束標志。為解決這一個問題,ASCI C提供一個feof函數,用來判斷文件是否結束。feof函數既可用以判斷二進制文件又可用以判斷文本文件。
2、常式:
#include<stdio.h>
intmain(void)
{
FILE*stream;
/*openafileforreading*/
stream=fopen("DUMMY.FIL","r");
/*readacharacterfromthefile*/
fgetc(stream);
/*checkforEOF*/
if(feof(stream))//使用feof函數檢查是否到達文件末尾
printf("Wehavereachedendoffile ");
/*closethefile*/
fclose(stream);
return0;
}
5. 怎樣用C++在文件每行末尾再寫入一個數
大概思路是:
ifstream ifs("1234.txt ");
ofstream ofs("1234_.txt ");
string line;
while(!ifs.eof()){
getline(ifs,line);
line+="你要加的數字";
ofs<<line;
}
6. Cfile如何使用
文件讀寫的最普通的方法是直接使用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();
如果你要進行的文件操作只是簡單的讀寫整行的字元串,建議你使用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();
7. mfc中用cfile怎樣從頭到尾讀取文件
使用CFile::SeekToBegin()定位到文件頭開始讀。然後讀取得到的文件長度的位元組數或者判斷到了文件末尾,就OK了。