#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define SIZE 60
struct stu
{
int sno;
char name[20];
float score;
};
typedef char (*type)[20];
type fun(char *str,char flag);
int main(int argc,char **argv)
{
FILE *fp;
char buf[SIZE];
type p;
int n;
struct stu st;
if( (fp = fopen(argv[1],"r")) == NULL)
{
perror("fopen");
exit(1);
}
while(fgets(buf,SIZE,fp)!=NULL)
{
// printf("%s",buf);
p = fun(buf,'\t');
st.sno = atoi(*p);
strcpy(st.name,*(p+1));
st.score = atof(*(p+2));
printf("%d\t%s\t%.2f\n",st.sno,st.name,st.score);
}
fclose(fp);
return 0;
}
type fun(char *str,char flag)
{
int i,j,n = 0,m = 20;
char *p = str;
while(*p)
{
if(*p == flag)
n++;
p++;
}
static char tmp[10][20];
for(i = 0; i < n+1; i++)
{
for(j = 0;(*str != flag )&&(*str != '\0');j++)
{
tmp[i][j] = *str++;
}
str++;
tmp[i][j] = '\0';
// printf("tmp[i] = %s\n",tmp[i]);
}
return tmp;
}