计算文件的行数和大小
#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
//打开一个文件,只读的形式打开
FILE *fp = fopen("user.txt","r");
if (NULL == fp)
{
perror("fopen");
return -1;
}
FILE *p = fopen("copy.txt","w");
char temp;
int count = 0;
int size_file = 0;
while(1)
{
temp = fgetc(fp);
if ('\n' == temp) //计算文件行数
{
count++;
}
if (EOF == temp)
{
break;
}
size_file += sizeof(temp); //文件大小的计算
fputc(temp,p);
}
printf("行数:%d\n",count);
printf("文件大小:%d\n", size_file); //文件大小输出
fclose(p);
//关闭文件
if (fclose(fp) < 0)
{
perror("fclose");
return -1;
}
return 0;
}
终端输入账户和密码,查看是否注册,没有的话就注册
判断是否已注册,没有注册提示未注册,然后进行注册操作
#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
FILE* fp = fopen("user.txt","r");
if (NULL == fp)
{
perror("fopen");
return -1;
}
//终端输入需要注册的账户和密码
char name[20] = "";
char passwd[20] = "";
scanf("%s %s",name,passwd);
printf("您刚才的输入为:%s %s\n",name,passwd);
//读取文件
char name_read[20] = "";
char passwd_read[20] = "";
int flag = 0;
while(1)
{
//遍历结束
if (fscanf(fp,"%s %s",name_read,passwd_read) == EOF)
{
if (flag == 0)
{
printf("该账户没有注册\n");
}
break;
}
//先遍历循环,查看是否有重复的
if (strcmp(name_read,name) == 0)
{
printf("该账户已注册\n");
flag = 1; //有重复,跳出循环
break;
}
}
//如果没有注册,执行注册操作
if (flag == 0)
{
FILE * p = fopen("user.txt","a");
if(NULL == p)
{
perror("fopen");
return -1;
}
fprintf(p,"%s %s\n",name,passwd);
printf("您输入的账号和密码已注册完毕\n");
fclose(p);
}
if (fclose(fp) < 0)
{
perror("fclose");
return -1;
}
return 0;
}