1. 注册功能
#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
FILE *p=fopen("usr.txt","r+");
if(NULL==p)
{
perror("fopen");
return -1;
}
char name[20],passwd[20];
char f_name[20],f_passwd[20];
char K;
printf("请输入账户和密码>>>");
scanf("%s %s",name,passwd);
int i;
while(1)
{
if(fscanf(p,"%s %s",f_name,f_passwd)==EOF)
{
printf("用户不存在\n");
printf("即将创建账号\n");
printf("是否创建\n输入Y/N\n");
getchar();
scanf("%c",&K);
if(K=='Y')
{
printf("1");
fseek(p,0,SEEK_SET);
while(1)
{
printf("!");
if(fscanf(p,"%s %s",f_name,f_passwd)==EOF)
{
break;
}
if(strcmp(f_name,name)==0)
{
printf("名字重复,不可创建\n");
return 1;
}
}
fprintf(p,"%s %s",name,passwd);
break;
}
}
// printf("%s %s\n",f_name,f_passwd);
if(strcmp(f_name,name)==0)
{
if(strcmp(f_passwd,passwd)==0)
{
printf("%s登录成功\n",f_name);
break;
}
else
{
printf("账户密码错误\n");
}
}
}
if(fclose(p)<0)
{
perror("fclose");
}
return 0;
}
2 用fgetc实现一个文件有几行,文件大小
#include <stdio.h>
int main(int argc, const char *argv[])
{
FILE *fp=fopen("05cp.c","r");
if(NULL==fp)
{
perror("fopen");
return 1;
}
char c=0;
int sum=0;
float sumbit=0;
while(1)
{
c=fgetc(fp);
if(c==EOF)
{
break;
}
if('\n'==c)
{
sum++;
}
sumbit+=sizeof(c);
}
printf("sum=%d sumbit=%g\n",sum,sumbit);
return 0;
}