#include
int main(int argc, const char *argv[])
{
size_t sys_time,old_time;
FILE* fp=NULL;
if((fp = fopen("./time.txt","a+"))==NULL)
{
perror("fopen");
return -1;
}
struct tm* tp;
char arr[100]="";
while(1)
{
time(&sys_time);
if(sys_time != old_time)
{
old_time=sys_time;
tp=localtime(&sys_time);
int count=1;
fseek(fp,0,SEEK_SET);
while(1)
{
char* str=fgets(arr,sizeof(arr),fp);
int len=strlen(arr);
if(str==NULL)
break;
if(arr[len-1]=='\n')
count++;
}
fprintf(fp,"%d:%4d-%02d-%02d %02d:%02d:%02d\n",\
count,tp->tm_year+1900,tp->tm_mon+1,tp->tm_mday,tp->tm_hour,tp->tm_min,tp->tm_sec);
fflush(fp);
}
}
fclose(fp);
return 0;
}
效果图:

将注册登录功能,重新做一遍
#include
int do_regest()
{
char regest_name[20];
char regest_paw[20];
printf("请输入注册账号");
fgets(regest_name,sizeof(regest_name),stdin);
regest_name[strlen(regest_name)-1]='\0';
printf("请输入密码账号");
fgets(regest_paw,sizeof(regest_paw),stdin);
regest_paw[strlen(regest_paw)-1]='\0';
FILE* fp = NULL;
if((fp=fopen("./user","a")) == NULL)
{
perror("fopen");
return -1;
}
fprintf(fp,"%s %s\n",regest_name,regest_paw);
fclose(fp);
printf("注册成功\n");
return 0;
}
int do_login()
{
char use_name[20];
char use_psw[20];
char login_name[20];
char login_psw[20];
printf("请输入账号");
fgets(login_name,sizeof(login_name),stdin);
login_name[strlen(login_name)-1]='\0';
printf("请输入密码");
fgets(login_psw,sizeof(login_psw),stdin);
login_psw[strlen(login_psw)-1]='\0';
FILE* fp=NULL;
if((fp = fopen("./user","r"))==NULL)
{
perror("fopen");
return -1;
}
while(1)
{
fscanf(fp,"%s %s",use_name,use_psw);
if(strcmp(login_name,use_name)==0&&strcmp(login_psw,use_psw)==0)
{
printf("登陆成功\n");
break;
}
if(feof(fp))
{
printf("登录失败\n");
break;
}
}
fclose(fp);
return 0;
}
int main(int argc, const char *argv[])
{
int flag=-1;
while(1)
{
system("clear");
printf("\t\t1.注册\n");
printf("\t\t2.登录\n");
printf("\t\t0.退出\n");
printf("请输入模式:");
scanf("%d",&flag);
getchar();
switch(flag)
{
case 1:
do_regest();
break;
case 2:
do_login();
break;
case 0:
//退出
goto END;
default:printf("输入错误请重新输入\n");
}
printf("输入任意键继续,回车结束:");
while(getchar() != '\n');
}
END:
return 0;
}
效果图:
使用fread\fwrite完成两个文件的拷贝
#include
int main(int argc, const char *argv[])
{
FILE* fp=NULL;
FILE* fq=NULL;
//打开复制文件和被复制文件
if((fp = fopen("./time.c","r"))== NULL)
{
perror("fopen");
return -1;
}
if((fq = fopen("./cpy.txt","w"))== NULL)
{
perror("fopen");
return -1;
}
//定义中间值数组
char str[100]="";
while(1)
{
//将被复制文件的内容拷贝到数组中,在用数组传入拷贝文件
int size=fread(str,1,sizeof(str),fp);
fwrite(str,size,1,fq);
//判断文件指针是否到文件结束
if(feof(fp))
break;
}
//关闭文件
fclose(fp);
fclose(fq);
return 0;
}
效果图:
