mfc 的txt文本写入的问题

2025-03-10 14:28:11
推荐回答(3个)
回答1:

fp
=
fopen
(
filename
,
"a")
;
a为追加写入
"r"
以只读方式打开一个文本文件。
不能以该方式打开一个不存在的文件,否则出错。
"w"
以只写方式打开一个文件文件。
若文件不存在,则系统自动建立该文件;
若文件已经存在,则在打开时将该文件删去,然后重新建立一个新文件。
"a"
以向文件末尾添加数据的方式打开一个文本文件。
若文件不存在,则系统自动建立该文件。
"r+"
以读/写方式打开一个已有的文本文件;
即,打开文件后,既可对文件进行读操作,又可对文件进行写操作。
"w+"
以读/写方式建立一个新文本文件。
注意"w+"与"r+"的区别,两者都是以读/写方式打开文件,但"r+"方式只能打开一个已有的文件,而"w+"方式可以打开已有的文件(但会删除该文件中的原有内容),也可以打开一个不存在的文件(即建立一个新文件)。
"a+"
以读/写方式打开一个文本文件,对文件的读写操作在文件的末尾进行。

回答2:

不知道你为什么这么写,只能按你给的代码改一下了:
bool
times
=
false;
{CStdioFile
file;
if(times
=
false)
{
file.Open(_T("e:\\3.txt"),CFile::modeCreate|CFile::modeNoTruncate|CFile::modeReadWrite|CFile::typeText);
times
=
true;
}
else
{
file.Open(_T("e:\\3.txt"),CFile::modeNoTruncate|CFile::modeReadWrite|CFile::typeText);
file.SeekToEnd();
}
CString
str;
str.Format("%s",sL);
file.WriteString(str);
file.Close();}
简单地说就是加一个bool变量在循环外,用于循环内判断用。

回答3:

简单方法是把
CStdioFile
file;
file.Open(_T("e:\\3.txt"),CFile::modeCreate|CFile::modeNoTruncate|CFile::modeReadWrite|CFile::typeText);
这段代码移至循环体前,这样就可以只创建一次文件,在循环结束后关闭文件就可以了.