1. 注册功能
#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
char name[20];
char passwd[20];
printf("输入待注册用户名: ");
scanf(" %s",name);
printf("输入待注册密码: ");
scanf( "%s",passwd);
FILE* fp = fopen("./usr.txt", "r");
if(NULL == fp)
{
perror("fopen" );
return -1;
}
//判断用户名是否存在
char username[20];
char pd[20];
while(1)
{
if(fscanf(fp, "%s %s" ,username,pd)<0)
break;
if( strcmp(username,name)==0)
{
printf("用户名已存在! \n");
printf( "重新输入待注册用户名: ");
scanf("%s" ,name);
printf("重新输入待注册密码: ");
scanf( "%s",passwd);
rewind(fp);
}
}
fprintf(fp," %s %s" ,name ,passwd);
printf("注册成功! \n");
fclose(fp);
return 0;
}
2. 用fgetc实现一个文件有几行,文件大小
#include <stdio.h>
#include <string.h>
//计算文件大小
int get_size(FILE *fp)
{
int count=0;
while(fgetc(fp) != EOF)
{
count++;
}
printf("%d",count);
return count;
}
//计算一个文件有多少行
int get_line(FILE *fp)
{
int count=0;
int c=0;
while((c=fgetc(fp)) != EOF)
{
if('\n'==c)
{
count++;
}
}
return count;
}
int main(int argc, const char *argv[])
{
FILE *fp=fopen("work.txt","r");
if(NULL==fp)
{
perror("fopen");
return -1;
}
int line=get_line(fp);
printf("%d\n",line);
int size=get_size(fp);
printf("%d\n",size);
fclose(fp);
return 0;
}