QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1781|回复: 6

请问怎么读取指定位置指定长度的字符串~

[复制链接]
发表于 2006-6-22 19:57:33 | 显示全部楼层 |阅读模式
如我的inputfile.dat文件中的内容如下:
HRDI_L3AL_STEMP_A_Y1991_M12_V0011/HRDI_L3AL_STEMP_A_D0081.V0011_C01data.dat
HRDI_L3AL_STEMP_A_Y1991_M12_V0011/HRDI_L3AL_STEMP_A_D0082.V0011_C01data.dat
HRDI_L3AL_STEMP_A_Y1991_M12_V0011/HRDI_L3AL_STEMP_A_D0094.V0011_C01data.dat
HRDI_L3AL_STEMP_A_Y1991_M12_V0011/HRDI_L3AL_STEMP_A_D0101.V0011_C01data.dat
……………………
每一行都是程序需要输入的数据,用FILE指针读取每一个文件名,我想把输入文件名中的时间信息“Y1991”和 “D0081 “
做为输出文件的标识~可以用fseek实现吗?请问详细怎么操作呢~
 楼主| 发表于 2006-6-22 19:59:12 | 显示全部楼层
就是取出代表时间信息的字符串,该用什么函数呢?
回复

使用道具 举报

发表于 2006-6-22 20:13:18 | 显示全部楼层
文本文件?
回复

使用道具 举报

 楼主| 发表于 2006-6-22 20:46:16 | 显示全部楼层
是的,用一个文本文件inputdata.dat作为输入文件。。一行是一个数据文件的名字,

在程序里用FILE指针打开,读取一行得到一个数据文件的路径然后打开数据文件。。。

不过以上不是问题所在,我是想请问一下如:
HRDI_L3AL_STEMP_A_Y1991_M12_V0011/HRDI_L3AL_STEMP_A_D0081.V0011_C01data.dat
一个字符串,我要取中间的两段,用什么函数呢?比如说“Y1991”和 “D0081 “
回复

使用道具 举报

发表于 2006-6-23 10:09:54 | 显示全部楼层
如果位置固定可以这样
[code:1]
char buf[6];
memset(buf,0,6);
strncpy(buf,line+off,5);
[/code:1]
回复

使用道具 举报

 楼主| 发表于 2006-6-23 14:23:46 | 显示全部楼层
我试了一下,感觉还是sscanf好用一些,不过谢谢你的回答~
回复

使用道具 举报

发表于 2006-6-24 13:07:42 | 显示全部楼层
这个用awk脚本处理不是更好?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-2 12:21 , Processed in 0.062432 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表