C文件读写操作-向文件写入字符串遇到的问题(sizeof与strlen)
来源:互联网 发布:mac百度网盘上传速度慢 编辑:程序博客网 时间:2024/05/22 15:03
对文件进行追加写操作,将字符数组中的字符串写入文件。每执行程序一次,追加写文件一次。遇到问题如下所述。
代码片段如下:
FILE *fp=NULL;
char tmp[512];char buf[1024*5]={0};
if((fp=fopen(filename,"a+"))==NULL){//追加读写打开文件
printf("Open data file failed!\n");
exit(0);
}
buf的赋值
fwrite(&buf,sizeof(buf),1,fp);
问题:当利用上述代码每执行一次程序,对文件追加写一次,文件写入结果如下图所示:
出现这个问题是buf缓冲区申请的大,实际数据占用的少,写入文件时没有判断实际数据大小。将buf大小用strlen获取所存字符串的长度,而不是sizeof,sizeof获取的是数组大小
fwrite(&buf,strlen(buf),1,fp);
重新执行程序,查看文件,格式正确。
- C文件读写操作-向文件写入字符串遇到的问题(sizeof与strlen)
- 关于向文件中写入字符串的换行问题
- 字符串的strlen与sizeof
- CString类型的字符串写入文件,所遇到的问题
- C语言文件读写操作,写入数据到文件
- sizeof , strlen与字符串
- 重写string.h中的字符串操作函数--strlen,strlen 与sizeof的区别
- C sizeof() 与 strlen()
- C sizeof 与 strlen()
- Objective-C读写文件 和 字符串的操作
- C语言文件的写入字符串写入文件
- C语言的文件读取与写入操作
- C语言/C++文件的读取与写入操作
- C++-sizeof()与strlen()的区别
- C语言:strlen与sizeof的区别
- C语言sizeof 与 strlen的比较
- 【C】sizeof与strlen的比较
- [C/C++标准库]_[初级]_[读写中文路径的文件--写入unicode字符串]
- 验证 Ubuntu11.10 安装telnet ssh ftp 软件
- Visual Studio 10.0设置引用HalconDotNet.dll
- oracle 追踪一个SQL会话
- PSCP工具 - 实现windows和*inx之间的双向文件传输
- Kissxml 解析 XML数据的简单Demo
- C文件读写操作-向文件写入字符串遇到的问题(sizeof与strlen)
- linux内核驱动模块加载方式
- struts2+spring+hibernate整合时所需的jar包
- XP远程桌面mstsc和带参数的mstsc /console的差别
- //hdu 1879 pim 简单
- 杂记
- 数据挖掘过程:从目标到任务再到技术
- Nature communications
- DB2 alter表字段