作业:
1、使用这fscanf和fprintf两个函数实现文件的拷贝。
cpp/*******************************************************/ //=> File Name: spcopy.c //=> Author: Water //=> Mail: 1249496568@qq.com //=> Created Time: 2024年12月09日 星期一 19时26分15秒 /*******************************************************/ #include<myhead.h> int main(int argc, const char *argv[]) { int res = 0; FILE * fp1 = fopen("./spcopy.c","r"); FILE * fp2 = fopen("./test.txt","w"); char key; while(1) { if(res == EOF) { break; } res = fscanf(fp1,"%c",&key); fprintf(fp2,"%c",key); } fclose(fp1); fclose(fp2); fp2 = fopen("./test.txt","r"); while(1) { res = fscanf(fp2,"%c",&key); if(res == EOF) { break; } printf("%c",key); } fclose(fp2); return 0; }
2、fwrite和fread实现文件拷贝。
cpp/*******************************************************/ //=> File Name: rwcopy.c //=> Author: Water //=> Mail: 1249496568@qq.com //=> Created Time: 2024年12月09日 星期一 16时33分24秒 /*******************************************************/ #include<myhead.h> int main(int argc, const char *argv[]) { FILE * fp1 = fopen("./rwcopy.c","r"); FILE * fp2 = fopen("./test.txt","w"); char buff[1024] = ""; while(1) { int res = fread(buff,1,sizeof(buff),fp1); if(res == 0) { break; } fwrite(buff,sizeof(buff),1,fp2); } fclose(fp1); fclose(fp2); fp2 = fopen("./test.txt","r"); while(1) { int res = fread(buff,1,sizeof(buff),fp2); if(res == 0) { break; } printf("%s",buff); } fclose(fp2); return 0; }
3、登录注册实现一遍。
cpp/*******************************************************/ //=> File Name: zhucedenglupro.h //=> Author: Water //=> Mail: 1249496568@qq.com //=> Created Time: 2024年12月09日 星期一 13时45分37秒 /*******************************************************/ #ifndef ZHUCEDENGLUPRO_H #define ZHUCEDENGLUPRO_H #include<myhead.h> //共用函数声明 void dengdai(); //等待键入回车再返回到主菜单 void error1(); //误输入提示模块 //注册登录模块相关函数声明 int getch(); //按键读取函数 void mima(); //密码隐藏函数 void zhucedenglu(); //注册登录框架 void menu1(); //注册登录循环显示选择模块 void zhuce(); //注册模块 void denglu(); //登录模块
cpp/*******************************************************/ //=> File Name: zhucedenglupro.c //=> Author: Water //=> Mail: 1249496568@qq.com //=> Created Time: 2024年12月09日 星期一 13时45分37秒 /*******************************************************/ #include"zhucedenglupro.h" //注册登录系统 void zhucedenglu() { char regest_usr[20] = ""; //注册名称 char regest_pwd[20] = ""; //注册密码 while(1) { int select1 = 0; //菜单1的选项 menu1(&select1); //注册登录循环显示选择模块 switch(select1) //多分支选择 { case 1: //注册账号 { zhuce(®est_usr,®est_pwd); //调用注册模块 } break; case 2: //登录账号 { denglu(®est_usr,®est_pwd); //调用登录模块 return; } break; case 0: exit(0); default: error1(); //误输入提示模块 dengdai(); //等待键入回车再返回到主菜单 } } } //注册登录循环显示选择模块 void menu1(int * select1) { system("clear"); //清屏 printf("=====注册账号=====\n"); printf("===1、注册账号====\n"); printf("===2、登录账号====\n"); printf("===0、退出系统====\n"); printf("请键入选项(0~2):"); scanf("%d",select1); } //按键读取函数 int getch() { int c = 0; struct termios org_opts, new_opts; int res = 0; res = tcgetattr(STDIN_FILENO, &org_opts); assert(res == 0); new_opts = org_opts; new_opts.c_lflag &= ~(ICANON | ECHO); tcsetattr(STDIN_FILENO, TCSANOW, &new_opts); c = getchar(); res = tcsetattr(STDIN_FILENO, TCSANOW, &org_opts); assert(res == 0); return c; } //密码隐藏函数 void mima(char * pass) { int i = 0; while((getchar()) != '\n'); //清空缓冲区 while(1) { char c=getch(); if(c=='\n'){break;} printf("*"); pass[i++]=c; } } //注册模块 void zhuce(char * regest_usr,char * regest_pwd) { printf("请输入账号:"); scanf("%s",regest_usr); printf("请输入密码:"); mima(regest_pwd); //追加写的方式写入文件 FILE * fp = fopen("./.zhangmiFile","a+"); //打开隐藏文件 if(NULL == fp) { perror("fopen"); return; } fprintf(fp,"%s %s\n",regest_usr,regest_pwd); fclose(fp); printf("\n注册成功,请键入回车返回主菜单\n"); getchar(); //等待键入回车再返回到主菜单 } //登录模块 void denglu(char * regest_usr,char * regest_pwd) { while(1) { char usrName[20] = ""; //登录账号 char pwd[20] = ""; //登录密码 printf("请输入账号:"); scanf("%s",usrName); printf("请输入密码:"); mima(pwd); //循环读取文件内容与账号密码匹配 FILE * fp = fopen("./.zhangmiFile","r"); if(NULL == fp) { perror("fopen"); return; } while(1) { int res = fscanf(fp,"%s %s",regest_usr,regest_pwd); if(res == EOF) { break; } //判断登录是否成功 if(strcmp(usrName,regest_usr) == 0 && strcmp(pwd,regest_pwd) == 0) { printf("\n登录成功,请键入回车进入下一级界面\n"); getchar(); //等待键入回车再返回到主菜单 printf("下一级界面\n"); //进入下一级界面 return; } } printf("\n登录失败,请重新登录\n"); } } //等待键入回车再返回到主菜单 void dengdai() { while((getchar()) != '\n'); //清空缓冲区 getchar(); //等待键入回车再返回到主菜单 } void error1() //误输入提示模块 { printf("输入有误,请键入回车返回主菜单\n"); }
cpp/*******************************************************/ //=> File Name: main.c //=> Author: Water //=> Mail: 1249496568@qq.com //=> Created Time: 2024年12月09日 星期一 13时45分37秒 /*******************************************************/ #include"zhucedenglupro.h" int main(int argc, const char *argv[]) { zhucedenglu(); //注册登录系统 return 0; }
第一章:标准IO
水水阿水水2024-12-10 16:29
相关推荐
码字哥7 分钟前
EasyExcel设置表头上面的那种大标题(前端传递来的大标题)m0_748257181 小时前
海康威视摄像头RTSP使用nginx推流到服务器直播教程Pou光明2 小时前
1_linux系统网络性能如何优化——几种开源网络协议栈比较工业甲酰苯胺2 小时前
C语言之输入输出努力d小白3 小时前
leetcode98.验证二叉搜索树YueTann3 小时前
Leetcode SQL 刷题与答案-基础篇TianyaOAO3 小时前
inmp+discuz论坛星光璀璨山河无恙3 小时前
【Linux】grep命令寒月6583 小时前
黑盒白盒测试I love this bad girl3 小时前
防火墙旁挂部署+故障切换