文件读取时,遇到的一点小知识
来源:互联网 发布:js时间戳转换成日期 编辑:程序博客网 时间:2024/04/30 09:50
sprintf(filename,"%s/hxdata/cwyw.2501.%ld.dat",getenv("HOME"),g_pub_tx.tx_date);
fp=fopen(filename,"rb");
if(fp==NULL)
{
vtcp_log(LOG_ERR,"[%s] [%d]打开文件失败!!!filename=[%s]",__FILE__,__LINE__,filename);
vtcp_log(LOG_ERR,"[%s] [%d]数据文件 filename=[%s] 不存在 ",__FILE__,__LINE__,filename);
fclose(fp);
goto ErrExit;
}
memset(cLine,0x00,sizeof(cLine));
fgets(cLine,sizeof(cLine)-1,fp);/*1*/
vtcp_log(LOG_DEBUG,"[%s] [%d]获取的数据:strlen(cLine)=[%d]",__FILE__,__LINE__,strlen(cLine));
pub_base_strpack(cLine);/*2*/
vtcp_log(LOG_DEBUG,"[%s] [%d]获取的数据:strlen(cLine)=[%d]",__FILE__,__LINE__,strlen(cLine));
vtcp_log(LOG_DEBUG,"[%s] [%d]获取的数据:cLine=[%s]",__FILE__,__LINE__,cLine);
-------------------------------------------
log
DEBUG:2015-04-29 11:51:14 922 [gDpjfb.c] [203]获取的数据:strlen(cLine)=[7]
DEBUG:2015-04-29 11:51:14 922 [gDpjfb.c] [205]获取的数据:strlen(cLine)=[7]
DEBUG:2015-04-29 11:51:14 922 [gDpjfb.c] [207]获取的数据:cLine=[ROWS:1]
------------------------------------------------------------------------------------------
cLine字符串明明是六个字节 为什么长度是七
今天看程序的时候,看到了这段 。strlen()是获取字符串长度的函数。遇到\0结束。
这时候从文件中读取一行//1
//2 去除字符串两端的空格
//3 问题来了 strlen() 获取字符串时 是从文件中读取的,所以文件的一行最后有换行符\n
所以读取的长度为7,最后把\n换成了\0。
- 文件读取时,遇到的一点小知识
- 文件读取的一点知识
- 关于文件读取的一点小问题
- 文件读取的一些小知识
- 编程时的一点小知识
- 遇到的小知识
- DirectX的一点小知识
- ios的一点小知识
- 线程的一点小知识
- ffmpeg的一点小知识
- 数据库的一点小知识
- Localizable.strings文件一点小知识
- Core文件的一点知识
- eclipes发布到tomcat时遇到的一点小问题
- ubuntu 安装Tomcat时遇到的一点小问题
- swing进行GUI编程时遇到的一点小麻烦
- UNICODE、DBCS的一点小知识
- Linux中scp的一点小知识
- Extjs5.1学习笔记2——工具栏和菜单栏的使用
- 一个Linux下多线程Demo
- Android的API版本和名称对应关系
- VC++6.0的一个bug
- 《netty权威指南》3.2nety第一个服务端/客户端开发应用程序
- 文件读取时,遇到的一点小知识
- Proguard使用最新,最全教程,亲自试验
- 全面理解面向对象的 JavaScript
- Android自定义属性以及format详解
- Matlab如何把for循环的结果以矩阵的形式显示
- Jquery异步分页控件
- exec函数族笔记
- Cocos2d-html5(version2.2.1)常用API
- 信号量与互斥锁