「新手到大神之途7」换置手机管理后台之多客户账号登陆
新项目要求
完成好几个账号
新项目完成
#include#include int main(void) {// 界定自变量,用于表明登录名和登陆密码char name[32];char password[16];FILE *file; //界定了一个档指针变量,用户标识符是filechar line[128];char name_tmp[32];char password_tmp[16];char *ret;//开启档file = fopen("users.txt", "r"); if (!file) { //等效于 file == NULL printf("档开启不成功");return 1;}//键入登录名和登陆密码while (1) {// 键入登录名和登陆密码printf("输入您登录名:");scanf("%s", name);printf("请输入密码:");scanf("%s", password);/*if (strcmp(name, "admin") == 0 && strcmp(password, "123456") == 0) {break;} else {printf("登录名或密码错误!");system("pause");system("cls");}*///从档中载入账号,并开展分辨!while (1) {//读一行ret = fgets(line, sizeof(line), file); //line: "admin 123456"if (!ret) {break;}sscanf(line, "%s %s", name_tmp, password_tmp);if (!strcmp(name, name_tmp) && !strcmp(password, password_tmp)) {break;}}if (ret) { //登录名和登陆密码搭配取得成功break;} else {printf("登录名或密码错误!");system("pause");system("cls");fseek(file, 0, SEEK_SET); //把档內部的部位表针设定到档头}}system("cls");// 复印作用莱单printf("---网络交换机管理后台---");printf("1. 建立账号");printf("2. IP管理方法");printf("3. 撤出");printf("挑选...");return 0;}
新项目精解
1. fopen档的开启实际操作
函数原型
#include FILE *fopen( const char *fname, const char *mode ); 主要参数1:fname 表明文件夹名称(能够带有途径信息内容) 主要参数2:打开 返回值:FILE* 档表针, 假如开启不成功,就回到NULL(就是0) mode 打开 "r" 以"读"的方法开启一个文字档(只有读) "r " 与"r" 的差别取决于,提升了"写" "rb" 以"读"的方法开启一个二进制档(只有读) "rb " 与"rb"的差别取决于,提升了"写" "w" 以"写"的方法建立一个文字档,假如这一档早已存有,便会遮盖原先的档 "w " 与"w"的差别取决于,提升了"读" "wb" 以"写"的方法建立一个二进制档 "wb " 与"wb"的差别取决于,提升了"读" "a" 以"尾端增加"的方法开启一个文字档, (只有写) "a " 以"a"的差别取决于,提升了"读" "ab" 以"尾端增加"的方法开启一个二进制档, (只有写) "ab " 与"ab"的差别取决于,提升了"读" 总结: 打开,共1到3个标识符。 第一个标识符是 r、w或a r 表明"读",用以开启早已存有的档 w 表明"建立", 用以建立一个新档,并可以"写" a 表明"尾端增加",并可以"写" b, 只有写在第二位,表明开启的是二进制档 ,只有写在最终,表明提升一个读或写的作用 案例 清除缓冲区域,并释放出来档表针。 Demo 需注意: 对档实行写实际操作之后,并不会立刻载入档,而仅仅载入来到这一档的輸出缓冲区域中! 仅有当这一輸出缓冲区域满了,或是实行了fflush,或是实行了fclose涵数之后,或是程序流程完毕, 才会把輸出缓冲区域中的內容真正载入档! 函数原型: #include int fgetc( FILE *stream ); 返回值:取得成功时,回到看到的标识符,回到的是int类型(具体值是标识符) 不成功或看到档尾,回到EOF (便是-1) 功效: 从档中载入一个字符 案例: 函数原型: #include int fputc( int ch, FILE *stream ); 案例: test.c 备考: 在新项目4的"字符串数组键入"中学习培训过。 函数原型: #include char * fgets( char *str, int num, FILE *stream ); 主要参数: num: 数最多载入num-一个标识符,或是碰到档结束符EOF已经(即"档看完了") 返回值; 载入不成功时, 回到NULL, 载入取得成功时,回到str 案例: 函数原型: #include int fputs( const char *str, FILE *stream ); 案例 函数原型: #include int fprintf( FILE *stream, const char *format, ... ); Demo: 函数原型: #include int fscanf( FILE *stream, const char *format, ... ); 返回值:取得成功时,回到具体载入的数据信息数量 不成功时,回到 EOF (-1) 搭配不成功时,回到0 Demo #include int fwrite( const void *buffer, //要载入的数据信息的实际上详细地址,也就是自变量的详细地址 size_t size, //每"块"数据信息的尺寸 size_t count, //载入几片数据信息 FILE *stream ); Demo 填补: w和wb的差别 wb的demo w的demo 总结: 在windows服务平台下, 当应用w方法开启档时, 假如应用fwrite载入数据信息时,会把''载入为 '''' 即把10储存为 13 10 由于,在windows服务平台下,文字档中的回车符,会储存为 ( 的ASCII码为10, 的ASCII码为13) 当应用wb方法开启档时, 假如应用fwrite载入数据信息时,碰到''仍只载入为 '' 函数原型: #include int fread( void *buffer, size_t size, size_t num, FILE *stream ); Demo demo#include
2. fclose档的关掉实际操作
#include
3. fgetc档的读实际操作
#include
4. fputc写一个字符到档fputc
#include
5. fgets 从档中载入一个字符串数组
#include
6. fputs 写一个字符串数组到档中去
#include
7. fprintf 往档中写恢复出厂设置数据信息
#include
8. fscanf 恢复出厂设置载入档中数据
#include
9. fwrite 以二进制方式写数据信息到档中去
#include
#include
#include
fread 以二进制方式载入档中的数据信息
#include
putw 以二进制方式存储一个整数金额
#include