1、注册功能
#include<stdio.h>
#include<string.h>
int main(int argc, const char *argv[])
{
//打开文件
FILE *fp=fopen("./usr.txt","a+");
if(NULL==fp)
{
perror("fopen");
return -1;
}
char name[30],passwd[32];
char file_name[30],file_passwd[32];
//终端获取一个名字,一个密码
printf("请输入要录取的账号 密码\n");
scanf("%s %s",name,passwd);
//将密码输入到文件中
while(1)
{
if(fscanf(fp,"%s %s",file_name,file_passwd)==EOF)
{
fprintf(fp,"%s %s",name,passwd);
fputc('\n',fp);
printf("注册成功!\n");
break;
}
if(strcmp(name,file_name)==0)
{
printf("用户已注册!\n");
break;
}
}
fclose(fp);
return 0;
}
运行结果
ubuntu@ubuntu:作业$ gcc zhuce.c
ubuntu@ubuntu:作业$ ./a.out
请输入要录取的账号 密码
zhangsan aaaa
注册成功!
ubuntu@ubuntu:作业$ zhangsan aaaa
zhangsan:未找到命令
ubuntu@ubuntu:作业$ ./a.out
请输入要录取的账号 密码
zhangsan aaaa
用户已注册
usr.txt
1 sunyi fan66666
2 dengjiabao 33333
3 zhangsan aaaa
2、用fgetc 实现一个文件有几行,文件大小
1 #include<stdio.h>
2 int main(int argc, const char *argv[])
3 {
4 //打开一个文件
5 FILE *fp=fopen("./main.c","r");
6 if(NULL==fp)
7 {
8 perror("fopen");
9 return -1;
10 }
11 char n;
12 int num=0;//记录行数
13 int mun=0;//记录文件大小
14 while(1)
15 {
16 n=fgetc(fp);
17 if(EOF==n)
18 break;
19 else if('\n'==n)
20 {
21 num++;
22 }
23 mun++;
24 }
25
26 printf("共有%d行\n",num);
27 printf("共有%d个字节\n",mun);
28 return 0;
29 }
main.c的文件代码(计算使用)
#include<stdio.h>
int main(int argc, const char *argv[])
{
/*
*1.抄函数名
*2、考虑函数,一定要数据类型匹配
*3、接返回值,定义相同数据类型的变量接收
*/
FILE* fp=fopen("./fopen.txt","r");
if(NULL == fp)
{
//printf("errno = %d\n,errno");
printf("fopen failed\n");
return -1;
}
printf("fopen success\n");
//关闭文件
if(fclose(fp) == EOF)
{
perror("fclose");
return -1;
}
printf("fclose success\n");
return 0;
}
运行结果
ubuntu@ubuntu:作业$ gcc data.c
ubuntu@ubuntu:作业$ ./a.out
共有27行
共有482个字节