CStdioFile是继承于CFile,VS中我们常用Unicode字符集和CString,用CFile操作并不一定方便,尤其是当我们写日志的时候。CStdioFile则专门定义了WriteString函数,非常方便。

//头文件
#include <locale>
#include <Windows.h>//////////////写日志函数里面////////////////
//参数1:CString filename;文件名和路径
//参数2:CString sLog;需要写入的日志信息//整理下日志内容,加上时间
CTime tm = CTime::GetCurrentTime();
CString str;
str = tm.Format(L"\n\n%Y\\%m\\%d %H:%M:%S");
str = str + _T(":") + sText;CStdioFile fFileDate;
fFileDate.Open(sFileName,CFile::modeNoTruncate | CFile::modeCreate | CFile::modeWrite | CFile::typeText);
// 打开文件参数项
/*
CFile::modeCreate --- 如果文件不存在则创建,如果文件存在则打开文件并清空文件内容 CFile::modeCreate | CFile::CFile::modeNoTruncate --- 如果文件不存在则创建,如果文件存在则打开文件并保留文件内容
CFile::shareDenyNone --- 允许其它进程对文件读写
CFile::shareDenyRead --- 不允许其它进程对文件进行读操作
CFile::shareDenyWrite --- 不允许其它进程对文件进行写操作
CFile::shareExclusive --- 以独占模式打开文件,不允许其它进程对文件进行读写
*/
setlocale(LC_CTYPE,"chs");
/*Unicode字符下,CStdioFile的Writestring无法写入中文
添加#include <locale>头文件
char* old_locale = _strdup( setlocale(LC_CTYPE,NULL) );
setlocale( LC_CTYPE, "chs" );//设定
file.WriteString(_T("abc中文"));//正常写入
setlocale( LC_CTYPE, old_locale );
free( old_locale );//还原区域设定
如果不需要还原设定,直接用setlocale即可
*///fFileDate.Seek(0,CFile::end); CFile的写法
fFileDate.SeekToEnd(); //移到末尾,下次即变成追加
fFileDate.WriteString(str);
fFileDate.Close();

读文件也一样很简单:

// 打开文件
CStdioFile file;
BOOL ret = file.Open(cstrFileFullPath, CFile::modeRead | CFile::shareDenyNone);
if (!ret)
{ AfxMessageBox("打开文件失败"); return;
}
file.SeekToBegin();
// 循环读取文件
CString cstrLine;
while (file.ReadString(cstrLine))
{ AfxMessageBox(cstrLine);
}
// 关闭文件
file.Close();

CStdioFile相关推荐

  1. CFile和CStdioFile的区别以及‘\r’、‘\r\n’

    转自:http://blog.csdn.net/davidhsing/archive/2007/08/26/1759494.aspx MSDN: Difference between text mod ...

  2. CFile、CStdioFile、FILE和其他文件操作(转)

    CFile //创建/打开文件 CFile file; file.Open(_T("test.txt"),CFile::modeCreate|CFile::modeNoTrunca ...

  3. CStdioFile读写文件的问题

    该注意的地方: 1.读文件操作中的file和path均在CXXApp类中定义,需要在CXXView中使用,我采用的方法是获取theApp对象,从而使用其中定义的file和path变量.在CXXView ...

  4. CStdioFile写文件中出现的问题

    被一个bug纠缠了两天,今天总算找到问题在哪里了: //创建学生端存放考试结果文件夹  CString strFolderPath = "C://";  strFolderPath ...

  5. CFile和CStdioFile的文件读写使用方法

    CFile //创建/打开文件 CFile file; file.Open(_T("test.txt"),CFile::modeCreate|CFile::modeNoTrunca ...

  6. MFC - CStdioFile 读取txt文件UNICODE 中文异常

    MFC - CStdioFile 读取txt文件UNICODE 中文异常 参考文章: (1)MFC - CStdioFile 读取txt文件UNICODE 中文异常 (2)https://www.cn ...

  7. CFile、CStdioFile、FILE和其他文件操作

    CFile //创建/打开文件 CFile file; file.Open(_T("test.txt"),CFile::modeCreate|CFile::modeNoTrunca ...

  8. 使用CStdioFile操作文件

    文件操作在VC编程中使用非常普遍,直接使用CFile对文件进行操作比较繁琐,使用继承自CFile的CStdioFile类就要容易得多,用CStdioFile 来处理字符串,是最简单最好理解的的办法.本 ...

  9. CStdioFile类学习

    CStdioFile 类学习笔记 2007-7-17 CStdioFile 类的声明保存再 afx.h 头文件中. CStdioFile 类继承自 CFile 类, CStdioFile 对象表示一个 ...

  10. CStdioFile类

    参数内容: 第一个参数为路径+文件名,最后一个为错误出现的结构. 现在解释下第二个参数 CFile::modeCreate   Directs the constructor to create a ...

最新文章

  1. SQL重要知识点梳理!
  2. 集成学习-Boosting集成学习算法XGBoost
  3. Devexpress之dxErrorProvider
  4. 综述 | 知识图谱向量化表示
  5. Expression,挑起2006年最后的争论?
  6. position 的属性值
  7. 逻辑表达式——黑纸白纸
  8. MySQL查询语句转postGRE语句_PostgreSQL DBA常用SQL查询语句
  9. Android 动态权限申请 BaseActivity 封装 拨打电话
  10. ubuntu 16.04下git的安装与使用
  11. leetcode python3 简单题26. Remove Duplicates from Sorted Array
  12. Apache 的 httpd.conf 详解(很实用)
  13. [转]国内Linux操作系统发行商分类溯源
  14. UG NX 12 草图技巧与方法分析
  15. websockets_WebSockets简介
  16. 利用QT实现中国象棋
  17. [SAS Hard Coding] 车型对应车商代码
  18. [iOS]获取App Store上的软件的ipa文件
  19. 准标准模式和标准模式之间的差别-1(旧文首发)
  20. 自学java可以吗?难吗?

热门文章

  1. 【react】JSX基本语法
  2. React基本使用、React脚手架的使用
  3. Windows身份验证和混合验证的区别
  4. 微软飞行模拟器android,微软飞行模拟器2020
  5. xfire ---java web服务器引擎
  6. windows下快速实现labelImg环境配置
  7. EMC VNX5400 File NAS证书过期问题
  8. ST-Link资料05_自制ST-Link(提供原理图及hex和bin固件)
  9. 物联卡管理平台是否重要
  10. 系列网络服务器机柜,什么是网络机柜 网络机柜和服务器机柜有哪些区别【详解】...