C++文件操作——文本写入

本文介绍了三种常见的文本写入方法:使用C语言的fputs函数、C++的ofstream输出流及MFC中的CStdioFile类相关函数。这些方法分别适用于不同的应用场景,并提供了具体的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文本写入,一般有以下几种方式

(1).采用C语言的fputs函数

USES_CONVERSION;  
char * pLogPath = T2A(FileDlg.GetPathName());  
FILE *fp = fopen(pLogPath, "w");  
if(NULL == fp)  
{  
	AfxMessageBox(L"failed to open txt\n");  
	return;
}  
CString strBuffer;
m_CtrlEditRead.GetWindowText(strBuffer);
//调用函数,T2A和W2A均支持ATL和MFC中的字符转换  
char * chBuf = T2A(strBuffer); 
fputs(chBuf,fp);
fclose(fp); 
如果需要持续追加写入的话,可以采用fseek对指针进行操作

FILE*pFile=NULL;
do 
{
	fopen_s(&pFile,pLogPath,"at+");
} while (pFile==NULL);
fseek(pFile,0L,2);//追加到文件末尾
fputs(chBuf,pFile);
fclose(pFile);
(2).采用C++的ofstream输出流

ofstream outFile(FileDlg.GetPathName());
if (outFile.is_open())
{
	CString strBuffer;
	m_CtrlEditRead.GetWindowText(strBuffer);
	USES_CONVERSION;  
	//调用函数,T2A和W2A均支持ATL和MFC中的字符转换  
	char * chBuf = T2A(strBuffer); 
	//outFile<<chBuf;
	outFile.write(chBuf,strlen(chBuf));
}
outFile.close();
(3).采用MFC中的CStdioFile类相关函数

char * pOldLocale = _strdup(setlocale(LC_CTYPE, NULL));
setlocale(LC_CTYPE, "chs");
CStdioFile File(FileDlg.GetPathName(),CFile::modeCreate|CFile::modeReadWrite);  
CString strBuffer;
m_CtrlEditRead.GetWindowText(strBuffer);
File.WriteString(strBuffer);
File.Flush();  
//文件操作结束关闭  
setlocale(LC_CTYPE, pOldLocale);
free(pOldLocale);
File.Close();  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值