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了。