IO-day1-(fscanf、fprintf.........)

news/2025/2/9 9:31:10/
作业一、
有一个usr.txt的文件,其中存储着用户的账户和密码,格式如下:
zhangsan aaaa
lisi bbbbb
空格前面是账户,空格后面是密码,一行一个账户、密码
要求如下:
从终端获取一个账户名和密码
判断是否能够登录成功
若账户不存在:则提示账户不存在
若账户存在,密码不匹配:则提示密码错误
账户密码均存在:则显示登录成功
#include <stdio.h>
#include <string.h>
#include <stdlib.h>int main(int argc, const char *argv[])
{char name[20], pw[20];char my_name[20] = "", my_pw[20] = "";FILE *fp = fopen("./usr.txt", "r");if (NULL == fp){perror("fp");return -1;}printf("fopen succse\n");printf("请输入用户名:");scanf("%s", my_name);printf("请输入用户密码:");scanf("%s", my_pw);while (1){if (fscanf(fp, "%s %s", name, pw) == EOF){printf("没有查询到该账户\n");return -1;}if (strcmp(my_name, name) == 0 && strcmp(my_pw, pw) != 0){printf("密码错误\n");return 0;}if (strcmp(my_name, name) == 0 && strcmp(my_pw, pw) == 0){printf("登录成功\n");return 0;}bzero(name, sizeof(name));bzero(pw, sizeof(pw));}if (EOF == fclose(fp)){perror("fp");return -1;}printf("fclose succse");return 0;
}
#include <stdio.h>
#include <string.h>
#include <stdlib.h>typedef struct DATE
{char name[20];char pw[20];
} Date;int main(int argc, const char *argv[])
{Date date[2];FILE *fp = fopen("./usr.txt", "r");if (NULL == fp){perror("fp");return -1;}for (int i = 0; i < 2; i++){fscanf(fp, "%s %s", date[i].name, date[i].pw);}char my_name[20] = "", my_pw[20] = "";printf("请输入用户名:");scanf("%s", my_name);printf("请输入用户密码:");scanf("%s", my_pw);for (int i = 0; i < 2; i++){if (strcmp(my_name, date[i].name) == 0){if (strcmp(my_pw, date[i].pw) == 0){printf("登录成功\n");fclose(fp);return 0;}printf("密码错误\n");fclose(fp);return 0;}}printf("账号不存在\n");fclose(fp);return 0;
}

作业二、
要求拷贝一个文件,例如将1.c中的内容拷贝到2.c中
要求计算一个文件的大小。
要求计算一个文件有几行。文件的最后一行也有一个'\n'
#include <stdio.h>
#include <string.h>
#include <stdlib.h>int main(int argc, const char *argv[])
{char c;int count=0,count1=0;FILE *fp1 = fopen("./1.txt", "r");FILE *fp2 = fopen("./2.txt", "w");if (NULL == fp1){perror("fp1");return -1;}if (NULL == fp2){perror("fp2");return -1;}while(1){c = fgetc(fp1);if(c<0){break;}else{//计算字符个数fputc(c,fp2);count++;}//计算行数if(c =='\n')count1++;     }printf("2.txt的文件大小是%d\n",count);printf("2.txt的文件的换行是%d\n",count1);fclose(fp1);fclose(fp2);return 0;
}

http://www.ppmy.cn/news/34424.html

相关文章

内网升级“高效安全”利器!统信软件发布私有化更新管理平台

随着数字化的深度推进&#xff0c;信息安全重要性进一步凸显。建设自主可控的国产操作系统&#xff0c;提升信息安全自主能力&#xff0c;已成为国家重要战略之一。 操作系统安全对计算机系统的整体安全发挥着关键作用&#xff0c;各类客户往往需要在第一时间获取更新与安全补…

LFM雷达实现及USRP验证【章节2:LFM雷达测距】

目录 1. 参数设计 几个重要的约束关系 仿真参数设计 2. matlab雷达测距代码 完整源码 代码分析 回顾&#xff1a;LFM的基本原理请详见第一章 本章节将介绍LFM雷达测距的原理及实现 1. 参数设计 几个重要的约束关系 带通采样定理&#xff1a; 因此如果我们B80MHz时&a…

【web前端开发】CSS背景相关内容

文章目录背景颜色背景图片背景平铺背景位置background(复合属性)背景颜色 属性名:background-color 取值:表示颜色的取值都可以填写,如:rgb注意点: 背景颜色默认是透明的背景颜色不影响盒子的大小 实用技巧:在平时使用一些盒子时,可以给盒子设置背景颜色,这样可以看清盒子的…

libvirt零知识学习5 —— libvirt源码编译安装(3)

接前一篇文章libvirt零知识学习4 —— libvirt源码编译安装&#xff08;2&#xff09; 在上篇文章及上上篇文章中构建libvirt的时候遇到了一个问题“ERROR: Problem encountered: YAJL 2 is required to build QEMU driver”。上篇文章讲到即使安装了相应的YAJL库仍然不能解决问…

数据结构与算法——堆的基本存储

目录 一、概念及其介绍 二、适用说明 三、结构图示 四、Java 实例代码 五.堆和栈的区别 一、概念及其介绍 堆(Heap)是计算机科学中一类特殊的数据结构的统称。 堆通常是一个可以被看做一棵完全二叉树的数组对象。 堆满足下列性质&#xff1a; 堆中某个节点的值总是不大…

Linux内核IO基础知识与概念

什么是 IO在计算机操作系统中&#xff0c;所谓的I/O就是 输入&#xff08;Input&#xff09;和输出&#xff08;Output&#xff09;&#xff0c;也可以理解为读&#xff08;Read&#xff09;和写&#xff08;Write)&#xff0c;针对不同的对象&#xff0c;I/O模式可以划分为磁盘…

大数据专业应该怎么学习

大数据学习不能停留在理论的层面上&#xff0c;大数据方向切入应是全方位的&#xff0c;基础语言的学习只是很小的一个方面&#xff0c;编程落实到最后到编程思想。学习前一定要对大数据有一个整体的认识。 大数据是数据量多吗&#xff1f;其实并不是&#xff0c;通过Hadoop其…

Mockito升级

背景 系统是SpringBoot的&#xff0c;原来单元测试用的 Mockito&#xff0c;不过由于版本较低&#xff0c;对静态方法无法Mock&#xff0c;所以又引入了 PowerMock&#xff1b; 好长时间没动过了&#xff0c;现在刚好有一个项目需要写测试代码&#xff0c;顺便也把Mockito升升…