【MFC】CFile 之 CFile::modeNoTruncate参数的用法

C++使用CFile类文件读写 C++,MFC使用Cfile类文件读写的一个例程。 官方文件参考: https://docs.microsoft.com/en-us/cpp/mfc/reference/cfile-class?view=vs-2019#abort 定义Cfile文件类 strPath =".\\video.\\squeeze.CSV";//定义路径和文件格式 if(strPath.Right(4)!=".CS... 阅读详情

MFC编程时,经常需要用如下方式操作文件:打开某一个文件,如果存在则追加,如果不存在则创建。

查看MSDN帮助文件,CFile类中CFile::modeNoTruncate参数具备该功能,该参数一般与CFile::modeCreate参数配合使用。

CFile::modeNoTruncate        该值一般modeCreate组合使用。如果创建的文件已经存在,那么它不会被清零。因而该文件能可靠的打开,或者新建一个文件或者打开一个现存文件。这对于打开一个可能存在可能不存在的设置文件十分有用。该选项通用可用于CStdioFile。

实际使用时,追加往往没有成功。是什么原因呢?难道这个参数只是微软说说而已?下面给出解决该类问题的小技巧,并附上代码:

h文件

public:	
        CStdioFile			m_cfLogFile;

protected:
        static CString			m_strSeparate;

cpp文件

CString CLog::m_strSeparate = _T("////////////////////////////////////////////////////////////////////////////////\r\n");
if (!m_cfLogFile.Open(strLogFileName, CFile::modeCreate | CFile::modeWrite | CFile::modeNoTruncate, NULL))
{
	return false;
}
		
//
m_cfLogFile.SeekToEnd();
m_cfLogFile.WriteString("\r\n");
m_cfLogFile.WriteString("\r\n");
m_cfLogFile.WriteString("\r\n");
m_cfLogFile.WriteString(m_strSeparate);
m_cfLogFile.WriteString(m_strSeparate);
m_cfLogFile.WriteString(m_strSeparate);

原来文件已经按追加方式打开了,只是被你覆盖了而已,注意SeekToEnd()函数位置。

 

 

CFile与CStdioFile的文件读写使用方法详解 CFile//创建/打开文件CFile file;file.Open(_T(“test.txt”),CFile::modeCreate|CFile::modeNoTruncate|CFile::modeReadWrite); 文件打开模式可组合使用,用“|”隔开,常用的有以下几种:CFile::modeCreate:以新建方式打开,如果文件不存在,新建;如果文件已存在,把该文件长度置零,即清除文件原有内容。CFile::modeNoTruncate:以追加方式打开,如果文件存在,打开并且不将文件长度置零,如果文件不存在,会抛出异常。一般与CFile::modeCreate一起使用,则文件不存在 立即下载

相关推荐

对LSTM中每个batch都初始化隐含层的理解

不知道有没有人和我有一样疑惑 在LSTM相关的代码中,为什么每个batch都会将隐藏层重新初始化, 这样不会把以前训练出来的参数丢掉吗?? 比如 代码来自GitHub 看了一些解释是h与c是状态,不是参数,每个batch中都需要初始化为0,LSTM 中的参数是W,b。 网络中训练的是参数,不是状态。 说真的。。。当时我没怎么看懂。。。 咨询了实验室的师兄后,我有了自己的理解 产生误解的主要原因是我对RNN和LSTM的结构理解不深入,我们通常看到RNN结构图基本都是这样的 ...

Chauncey_Wang的博客 5910

「 C++ 参数 」“ CFile::modeNoTruncate 参数”讲解

一.前言 本文将采用对比说明的方式,来表达出modeNoTruncate 参数的作用,从而做到快速理解。 二.讲解 1.参数功能: 使用CFile::modeNoTruncate的模式,可以简单理解为:用新代码去替换掉原代码的一部分。 2.对比说明 代码①: m_file.Open(strFilePathC,CFile::modeCreate|C...

Robot_Starscream的博客 2337

SRAM vs RRAM:存算一体芯片选型指南(含最新技术对比)

本文深入对比了SRAM与RRAM在存算一体芯片设计中的核心差异,为硬件工程师和架构师提供实战选型指南。文章从技术本质、性能、功耗、成本及设计风险等多维度剖析,指出SRAM基于成熟CMOS工艺,适合高精度、低延迟场景;而RRAM凭借非易失性和高密度潜力,在超低功耗、固定模型应用中优势明显。决策需综合项目预算、上市时间及技术储备。

e4f5g6h的博客 942

MFC中CFile::modeCreate和CFile::modeNoTruncate参数

CFile::modeCreate 如果文件不存在,请创建一个新文件。 如果该文件已存在,它是被覆盖,并最初设置为长度为零。 CFile::modeNoTruncate 若文件不存在,则创建新文件;否则,如果该文件已存在,则将其附加到 CFile 对象。 用modeCreate模式创建和打开一个文件,假如这个文件已经存在,则会清空这个已经存在的文件,加上modeNoTruncate的话,...

Rock N' Roll Forever 5946

高校学籍管理系统(SQL Server数据库课程设计)

摘要: 高校的管理工作是一项复杂且系统化的工作。而随着当代社会积极响应国家“科教兴国”的战略。高校建设规模和招生人数每年均高不下,庞大的学生群体对高校的管理工作带来了巨大的挑战。而对学生的学籍管理工作更是高校管理工作的一个重要环节。 面对高校学生学籍信息如此庞大的数据群,如采用传统的管理模式,管理工作的效率不仅低下,而且数据错误的发生率相对较高,还会产生人力和物力上的巨大开支。面对这样的情况,开发一个高校学籍管理系统就显得尤为重要。 运用高校学籍管理系统可以大大提高高校管理工作效率、方便系统维护、减小开支、

qq_52030824的博客 7万+

深入解析TI C2000 ePWM模块:峰值电流模式Buck与LLC谐振变换器实战配置

脉宽调制(PWM)技术是电力电子与数字电源控制的核心,它通过调节开关信号的占空比或频率,实现对功率变换器输出电压、电流的精确控制。其基本原理是利用微控制器内部的定时器和比较器,生成具有特定时序的方波信号,驱动功率开关器件。这项技术的核心价值在于将复杂的模拟控制环路数字化,从而提升系统的可控性、灵活性和可靠性。在电机驱动、不间断电源(UPS)、服务器电源和新能源逆变器等广泛应用场景中,PWM技术都是实现高效能量转换的基石。本文聚焦于德州仪器(TI)C2000系列微控制器中功能强大的增强型PWM(ePWM)模块

weixin_30410119的博客 346

python中open的三种打开方式_python中open多种打开方式记录

w:以只写的方式打开文件,文件存在则覆盖,不存在则创建;w+:以读写的方式打开文件,文件存在则覆盖,不存在则创建;wb:以只写的方式打开文件写入二进制数据,文件存在则覆盖,不存在则创建;wb+:以读写的方式打开文件写入二进制数据,文件存在则覆盖,不存在则创建;r:以只读的方式打开文件,文件不存在则报错;r+:以读写的方式打开文件,文件不存在则报错;rb:以只读方式打开文件读取二进制数据,文件不存在...

weixin_39767322的博客 399

自定义模型训练——打造专属OpenClaw模型(2026AI版)

本文介绍了OpenClaw自定义模型训练的核心流程,包括框架选择(PyTorch、TensorFlow、HuggingFace和原生OpenClaw框架)、训练环境搭建脚本、以及数据收集系统的设计。数据收集器支持从数据库、API、文件和网络等多种来源获取训练数据,并提供灵活的过滤机制确保数据质量。通过这套系统,开发者可以高效准备训练数据,为后续模型训练打下坚实基础。

博客 877

CFile::modeNoTruncate 参数详细说明

MSDN上说到: CFile::modeNoTruncate Combine this value with modeCreate. If the file being created already exists, it is not truncated to 0 length. Thus the file is guaranteed to open, either as a newly cr

目前打算换一个工作,有招聘windows c++方向的也欢迎联系,北京、济南 最好 3万+

RK3399外设驱动之MIPI

RK3399外设驱动之MIPI 文章目录RK3399外设驱动之MIPIMIPI命令解析入口代码mipi显示配置实例rk3399mipi驱动rk mipi驱动注册过程rk32_mipi_dsi.c解析 内核版本 Linux4.4 平台 rk3399 作者 nineyole MIPI命令解析入口代码 MIPI的入口代码如下:kernel\drivers\video\rockchip\screen\lcd_mipi.c static int __init rk_mipi_screen_in

学无止境 2229

AutoSAR实验视频讲解:相关资料下载

AutoSAR实验视频讲解:闪烁一颗LED实验【相关资料下载】 总目录 为了方便大家自己的实验顺利进行,这里我们准备了一些实验中可能用到的资料供大家使用 介绍 这里主要是三个文件: MyApp_Core.0是我们的用户代码,在工程集成那集将会讲解 McalConfig.arxml就是我们的Mcal导出文件,用于导入到DaVinci中生成代码 CAN.dbc文件是我们的通信矩阵文件 以上几个文件都是简单的配置,不具有实际项目的实用性,大家仅供参考 // 顺便吐槽一句:百度网盘的吃相真的难看 下载连接

雪云飞星的博客 6668

CFile::modeNoTruncate参数详解

MSDN上说到: CFile::modeNoTruncate Combine this value with modeCreate. If the file being created already exists, it is not truncated to 0 length. Thus the file is guaranteed to open, either as a newly created file or as an existing file. This might be useful,

qq_40309341的博客 725

基于Gossip算法的柔性互联自治微网群分布式协调控制策略:复现代码与详细解释

摘要(149字): 本文基于Gossip算法实现了柔性互联微网群(MMG)的分布式协调控制策略仿真。研究构建了包含3个微网、10个分布式电源(DG)的MATLAB/Simulink模型,采用双层控制架构:上层通过柔性交流开关(FAS)实现微网间功率协调,下层利用Gossip算法完成DG间的边际成本一致性控制。重点开发了异步通信的Gossip算法核心函数,实现了分布式电源的自主边际成本估计与功率分配。仿真验证了系统在负荷变化和DG故障等工况下的协调控制能力,结果表明该策略能有效维持微网群的经济运行与功率平衡。

huanghm88的专栏 281

CFile::modeNoTruncate

CFile::modeNoTruncate 参数详细说明   MSDN上说到: CFile::modeNoTruncate Combine this value with modeCreate. If the file being created already exists, it is not truncated to 0 length. Thus the file

Jpday的专栏 4851

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

CFile.Open()的使用说明

CFile.Open()的使用说明  http://blog.sina.com.cn/s/blog_673209640100i6pi.html     在程序中碰到这个一段代码: 讲的是CFILE类的文件操作,故参考MSDN系统学习一下(翻译了一下英文): CFile file; CFileException fe; //打开文件 if(!

congzhao27的专栏 2507

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

CFile 深入研究之 CFile::modeNoTruncate

原文:CFile 深入研究之 CFile::modeNoTruncate 即时通讯爱好者 NanShan 最近专注于研究 CFile 的各种问题,今天主要是 CFile::modeNoTruncate 相信研究。 CFile::modeNoTruncate Combine this value with modeCreate. If the file being created alrea

神经网络爱好者 2570

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

MFC中用CFile读取和写入文件

MFC提供了CFile类方便文件的读写,首先要知道,文件的数据读取、数据写入与文件指针的操作都是以字节为单位的,数据的读取和写入都是从文件指针的位置开始的,当打开一个文件的时候,文件指针总是在文件的开头。常规方法如下: CFile file; file.open( LPCTSTR lpszFileName, UINT nOpenFlags, CFileException* pError

陌上人如玉,公子世无双。 9171

MFC CFile类

CFile::modeCreate:新建; CFile::modeNoTruncate:以追加方式打开,如果文件存在,打开并且不将文件长度置零,如果文件不存在,会抛出异常; 一般与CFile::modeCreate一起使用,则文件不存在时,新建一个文件;存在就进行追加操作; CFile::modeReadWrite:以读写方式打开文件; CFile::modeRead:以只读方式打开文件;

EXPENF的专栏 942

VS2013学习笔记之MFC框架CFile类文件操作

读写文件操作:       (1) 文件类        CFile   (2) 构造方法       CFile::CFile();   CFile::CFile( LPCTSTR lpszFileName, UINT nOpenFlags );    lpszFileName      文件名   nOpenFlags        打开方式,有:

一颗偏执的心 2422

CFile类的open方法中的参数说明

CFile::Open是在MFC里面,打开一个文件的方法。 Open函数的原型如下: virtual BOOL Open( LPCTSTR lpszFileName, UINT nOpenFlags, CFileException* pError = NULL ); 如果你想读一个文件,就用CFile::modeRead作为第二个参数,同时CFile::modeCreate代表创建一个文...

weixin_30301183的博客 288

CFile类的使用

CFile类的声明保存在afx.h头文件中。 CFile类是MFC文件类的基类,提供非缓冲方式的二进制磁盘输入、输出功能;并直接通过派生类来支持文本文件和内存文件。提供访问本地文件内容的功能,不支持访问网络文件的功能。 CFile类的成员变量: m_hFile:表示一个打开文件的操作系统文件句柄。通过对m_hFile与CFile::hFileNull的比较来判断该文件是否已经打开。 ...

小米的修行之路 4190

CFile Open函数说明

  1)nOpenFlags ·             CFile::modeCreate 创建一个新的文件,如果文件存在将文件截取成长度为0。 ·             CFile::modeNoTruncate    此标志总是与modeCreate 配合使用,如果文件存在,不将文件截取成长度为0;如果文件不存在即创建新文件。这个功能往往很好用,比如说,当你需要打开一个设置

tianxiajianling的专栏 5046

VS2010/MFC编程入门之四十五(MFC常用类:CFile文件操作类)

上一节中鸡啄米讲了定时器Timer的用法,本节介绍下文件操作类CFile类的使用。        CFile类概述        如果你学过C语言,应该知道文件操作使用的是文件指针,通过文件指针实现对它指向的文件的各种操作。这些文件操作函数中有的最终还是调用了操作系统的API函数或者处理过程与之类似,例如在Windows系统中,fread函数就调用了API函数ReadFile。       

my_lord 1299

即时通讯软件中 CFile.Open() 使用说明

 写即时通讯的时候,蚊子132 要了解即时通讯软件中 CFile.Open() 使用说明,下面详细介绍一下。 在程中碰到这个一段代码: 讲的是CFILE类的文件操作,故参考MSDN系统学习一下(翻译了一下英文): CFile file; CFileException fe; //打开文件 if(!file.Open(lpszPathName,CFile::modeRead|C

神经网络爱好者 1007

MFC文件读写

CFile是MFC中的一个类,可以方便的读写文件。如果读写一行的话建议使用CStdioFile类的ReadString()和WriteString()。这些类要实现追加的方式写文件的话。要设定参数和文件指针的位置。 具体方法如下: CFile myfile;  if(!myfile.Open(Filename,CFile::modeNoTruncate|CFile::modeWrite)==

zhaopengxslc的专栏 616
上一篇: 【Windows API】打开串口号大于9的串口,CreateFile返回失败!
下一篇: 【Visual Studio】VS2010中能编译通过,但是会有红色波浪线错误
sunriver2000
博客等级 码龄21年 453粉丝 295原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值