在写文件时第一次写入时能实现 ,但删除后再写入的时候就实现不了,为什么?

ruiyiiuo2007 2007-09-04 03:25:07

在写文件时第一次写入时能实现 ,但删除后再写入的时候就实现不了,为什么?
例:
FILE *fp = NULL;
fp = fopen("top.txt","b+");
if(fp)
{
fwrite(szSqlBuffer888,strlen(szSqlBuffer888),1,fp);
fclose(fp);

}
...全文
196 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ruiyiiuo2007 2007-09-05
  • 打赏
  • 举报
回复
多谢谢呀.
xiao_ke 2007-09-04
  • 打赏
  • 举报
回复
是啊 你那個b+ 。。。。。。。
KenYuan2016 2007-09-04
  • 打赏
  • 举报
回复
Please choose the correct parameter in your code...

"r"
Opens for reading. If the file does not exist or cannot be found, the fopen call fails.
"w"
Opens an empty file for writing. If the given file exists, its contents are destroyed.
"a"
Opens for writing at the end of the file (appending) without removing the EOF marker before writing new data to the file; creates the file first if it doesn't exist.
"r+"
Opens for both reading and writing. (The file must exist.)
"w+"
Opens an empty file for both reading and writing. If the given file exists, its contents are destroyed.
"a+"
Opens for reading and appending; the appending operation includes the removal of the EOF marker before new data is written to the file and the EOF marker is restored after writing is complete; creates the file first if it doesn't exist.
zywhuiss 2007-09-04
  • 打赏
  • 举报
回复
"fp = fopen("top.txt","b+");"
怎么MSDN里面对fopen的说明终没有"b+"这个参数?楼主认真看过MSDN吗?
冷月清晖 2007-09-04
  • 打赏
  • 举报
回复
多些判断 错误处理

if(NULL==(fp = fopen("top.txt","b+")))
/*文件没打开,报错*/
else
/*操作*/
if( 0==fclose( fp ) )
/*文件关闭*/
else
/*报错*/
冷月清晖 2007-09-04
  • 打赏
  • 举报
回复
当然啦,关闭之后要再次打开呀
IfI 2007-09-04
  • 打赏
  • 举报
回复
用c++的话建议用标准c++的库.

这个例子中,你把文件删除了,却没有指定"如果文件不存在就创建它"的参数,所以获取文件指针失败.

按楼上说法,换成wb+试试.
awperpvip 2007-09-04
  • 打赏
  • 举报
回复
debug一下,fp始终为NULL
fopen失败,改一下打开方式,比如传参数为wb+试下OK.
代码下载链接: https://pan.quark.cn/s/23ff226fe24b ### iTest自动化测试工具知识点详解#### 一、iTest自动化测试工具简介iTest是由业界领先测试设备制造商Spirent所研发的一款自动化测试工具。该工具为用户呈现了一个集成化的自动化测试解决方案,借助这一工具,用户能够完成软件及网络测试的编与自动化执行。iTest不仅适用于专业的测试工程师,对于非测试人员来说,同样是一个功能强大的工具,能够协助他们对网络中的设备和应用进行访问和自动化操作。#### 二、iTest Lite快速入门指南iTest Lite是一款免费提供给用户的版本,其目的是为用户呈现一个简明的iTest产品概览。用户可以从官方网站(www.fanfaresoftware.com)获取并安装iTest Lite。此工具不仅能够支持用户进行软件和网络测试,还能用于对网络上的设备或应用程序进行管理和自动化。#### 三、iTest的工作流程- **主页内容**:在iTest被启动之后,主页内容将展示在右侧,而活动列表则位于左侧。主页上不仅包含欢迎消息,还会提供iTest工作流程的高级图示以及链接到Fanfare社区的入口,用户可以通过论坛帖子、教程视频等资源进一步了解iTest。 - **活动列表**:这是使用iTest功能的推荐起点。活动列表包含以下几个部分: - **连接设备**:一种便捷的方法来验证iTest是否能够连接到测试设备。 - **构建拓扑结构**:在这一步骤中,可以迅速定义一组想要进行测试的设备或应用程序。 - **开发测试用例**:创建一个自动化的测试用例,用于针对任何特定的拓扑结构进行测试。 - **查看测试报告**:访问个人...
代码下载链接: https://pan.quark.cn/s/89ea75840350 STM32微控制器的实钟(RTC)作为一个独立的计单元,能够在系统重启或从休眠状态激活后持续保持间设置不变。本文将详细探究STM32 RTC的运行机制,涵盖钟结构图解析以及间显示的原理。需要明确的是,STM32的RTC模块坐落于备份领域(Backup domain),它借助32.768kHz的辅助晶体振荡器作为钟供给。在进行RTC编程实践,务必小心谨慎地处理与RTC相关的寄存器配置。随后,我们将借助RTC钟结构图展开深入剖析。钟结构图主要由两大块构成:APB1接口区块与RTC主控单元。APB1接口区块负责对与RTC关联的寄存器进行数据交互,而RTC主控单元内含两个子模块:RTC分频调节模块以及一个32位可变步长计数器。在RTC主控单元内部,有几个关键寄存器是必须掌握的:1. RTC_DIV(RTC分频调节余数寄存器):此寄存器旨在获取超越秒级的更高精度间(如0.1秒、0.01秒)。该寄存器在数值减至极值后会由硬件自动重置。其数值由RTC_PRL(RTC分频调节装载寄存器)提供,其钟频率源自RTCCLK。2. RTC_PRL(RTC分频调节装载寄存器):它为RTC_DIV提供重置数值,同用于设定钟频率的缩放比例。例如,若晶体振荡器频率为32.768KHz,将RTC_PRL设定为32767,即可得到每秒的计数速率。3. RTC_CNT(RTC计数器寄存器):该寄存器记录秒数,并可用于触发计数器溢出中断。4. RTC_ALR(RTC闹钟寄存器):用于设定闹钟刻,一旦计数器的数值与闹钟寄存器匹配,并且中断功能已启用,便会引发一个闹钟中断事件。在物理实现层...

65,209

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧