菜鸟之作:谁能看懂我我的垃圾程序? (还没完全写完)
// my work.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "string.h"
#include "stdlib.h"
#define BUFSIZE 200
int itoi(int s[]);
int ser_pos(char s[]);
char *gets(char *s,int n);
void str_spl(char a[]);
char *mygets(char s[],int Nmem);
typedef struct
{
char name[10];
int num;
int age;
char addr[15];
}GUEST_TYPE, *PGUEST_TYPE;
GUEST_TYPE guest[];
PGUEST_TYPE pguest;
int _tmain(int argc, _TCHAR* argv[])
{
int i,j,k,Nmem,n;
char buf[BUFSIZE], s[BUFSIZE];
i=0,k=0,Nmem=0;
FILE *fp;
if ((fp=fopen("test.txt","r"))==NULL) //错误判断
{
printf("can not open file.");
exit(0);
}
while (n=fread(buf,sizeof(buf[BUFSIZE+1]),1,fp)>0); //读取一组字符 并统计个数
memcpy(buf, s, n); //将读取的字符放在一个长字符串缓冲区buffer里
for(k=0;k<(int)strlen(s);k++)
{
if(s[k]=='^')
Nmem++;
}
gets(s,n); //截取一个成员数据
ser_pos(char s[]);
str_spl(char a[]);
for (j=0;j<Nmem;++j ) //输出结构的内容 循环
{
printf("record %d:\n",j);
printf("name:%s\n",guest[j].name);
printf("num:%d\n",guest[j].num);
printf("age:%d\n",guest[j].age);
printf("addr:%s\n",guest[j].addr);
}
fclose(fp);
}
int itoi(int a[]) //字符型变整型
{
int i,n;
n=0;
for(i=0;i<(int)strlen(a);i++)
{
n=n*10+(a[i]-'0');
}
return n;
}
int ser_pos(char s[]) //找到字符串s的结点位置pos
{
int flag,pos;
flag=0;
while(!flag)
{
for(i=(int)strlen(s);i>=0,i--)
{
if(s[i]=='^')
{
flag=1;
pos=i
}
if(s[i]!='^'||s[i]!='#') //校验
{
printf("error! please check your format")
}
}
}
return pos;
}
char *gets(char *s,int n) //在s中读取一个成员的数据 保留在cs中
{
register int c;
register char *cs;
cs=s;
while(--n>0&&(c=gets(iop))!=EOF)
if((*cs++=c)=='^')
break;
*cs='\0';
return(c==EOF&&cs==s)?NULL:s;
}
void str_spl(char a[]) //字符串处理 a[]:型如zhang#01#21#beijing#
{
register int i=0;
register int flag=0;
register char *sna;
register char *snu;
register char *sag;
register char *sad;
while(--Nmem>0&&(i=gets(s))!=EOF)
{
if(s=='#')
{
flag++
}
switch(flag)
{
case'1':
sna[i++]=s[i++];
break;
*sna='\0';
case'2':
snu[i++]=s[i++];
break;
*snu='\0';
case'3':
sag[i++]=s[i++];
break;
case'4':
sad[i++]=s[i++];
break;
*sad='\0';
}
for(i=0;i<Nmem;i++)
{
guest[i].name=sna;
guest[i].num=snu;
guest[i].age=sag;
guest[i].addr=sad;
}
}