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

时间:2021-09-22 10:41:37
如我的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实现吗?请问详细怎么操作呢~

5 个解决方案

#1


自己顶,怎么没有人回答捏?

#2


看不懂,不会答

#3


#include <stdio.h>

int main(int argc, char * argv[])
{
char s[]="HRDI_L3AL_STEMP_A_Y1991_M12_V0011/HRDI_L3AL_STEMP_A_D0081.V0011_C01data.dat";
char s1[100],s2[100];
char s3[100],s4[100];

sscanf(s,"%18s%5s%29s%5s",s1,s2,s3,s4);
printf("%s\n",s1);
printf("%s\n",s2);
printf("%s\n",s3);
printf("%s\n",s4);
}

HRDI_L3AL_STEMP_A_
Y1991
_M12_V0011/HRDI_L3AL_STEMP_A_
D0081

#4


to tailzhou(尾巴) :

sscanf(s,"%18s%5s%29s%5s",s1,s2,s3,s4);
改为
fscanf(file,"%18s%5s%29s%5s",s1,s2,s3,s4);

就更符合LZ的要求了。

#5


我试了一下,还是sscanf好用,多谢各位回答,

还有一个问题。。。。。。。。。。。。。。。那个。。怎么给分啊?

#1


自己顶,怎么没有人回答捏?

#2


看不懂,不会答

#3


#include <stdio.h>

int main(int argc, char * argv[])
{
char s[]="HRDI_L3AL_STEMP_A_Y1991_M12_V0011/HRDI_L3AL_STEMP_A_D0081.V0011_C01data.dat";
char s1[100],s2[100];
char s3[100],s4[100];

sscanf(s,"%18s%5s%29s%5s",s1,s2,s3,s4);
printf("%s\n",s1);
printf("%s\n",s2);
printf("%s\n",s3);
printf("%s\n",s4);
}

HRDI_L3AL_STEMP_A_
Y1991
_M12_V0011/HRDI_L3AL_STEMP_A_
D0081

#4


to tailzhou(尾巴) :

sscanf(s,"%18s%5s%29s%5s",s1,s2,s3,s4);
改为
fscanf(file,"%18s%5s%29s%5s",s1,s2,s3,s4);

就更符合LZ的要求了。

#5


我试了一下,还是sscanf好用,多谢各位回答,

还有一个问题。。。。。。。。。。。。。。。那个。。怎么给分啊?