c语言高手请进,关于一个文本转换的问题(100分)

  • 主题发起人 主题发起人 anxf
  • 开始时间 开始时间
A

anxf

Unregistered / Unconfirmed
GUEST, unregistred user!
f_no=001
f_a=76.77
name=a1
s_no=014
s_a=18.63
name=fd
t_no=034
t_a=19.02
name=sf
f_no=1
f_a=76
name=gg
s_no=1
s_a=0.63
name=hh
t_no=1
t_a=19
name=yy
f_no=2
f_a=0.77
name=pp
s_no=2
s_a=18
name=ww
t_no=3
t_a=0.02
name=dd
f_no=-----
f_a=------
name=------
s_no=------
s_a=------
name=------
t_no=------
t_a=------
name=------
将上面的文本转换成下面的文本:
001 76.77
00101 76
00102 0.77
014 18.63
01401 0.63
01402 18
034 19.02
03401 19
03402 0.02
我的思路是:先读f_no,当f_no“=”后面的第一项不是数字时,
读s_no,当s_no“=”后面的第一项不是数字时,读t_no.

请c语言高手给出一段c源码。
 
看不懂,为什么有00101 76 ?
 
高手,高手,高手再哪里
 
不难,就是繁
 
确实不难,就是很麻烦
 
能帮忙吗,我刚刚开始学c语言,要在UNIX下运行
 
怎么没有人来帮一下?
 
刚学程序都不自己动手怎么行,何况代码一点难度都没有,想偷懒是不行的。[:(]
 
这个应该不难,好象开过一贴了。
 
我做了一些,但实在是太麻烦,不想做了,只有靠你自己了,真的没什么难的。

#include <stdio.h>
#include <string.h>
#include <ctype.h>

struct col_s
{

char value_no[4];
char value_a[4];
char value_name[4];
};

struct lin_s
{
char field_no[4];
char field_a[4];
char field_name[4];
struct col_s col[255];

};

void main()
{
char buff[512];
char *token = NULL;
char seps[] = "=/t/r/n";
struct lin_s lin[255];
int i;
FILE *fp=fopen("test.txt", "r");

if(!fp)
{
printf("Open file erro./n");
return;
}

while(fgets(buff,512,fp))
{
token = strtok(buff, seps);
while( token != NULL )
{
if(!isdigit(token[0]))
{
printf("%s/n",token);
if(token[2]=="n")
{

}
}
token = strtok(NULL, seps);
}
}

fclose(fp);
}
 
后退
顶部