解决使用gets(getchar)函数无法输入字符(字符串)和scanf_s函数显示缺少“scanf_s”整型参数的问题

一.函数介绍

gets函数:

该函数就是读取字符串,遇到空格不会停止,直到遇到换行字符,但是也会读取最后的换行字符(这也就是我在写代码的时候遇到的一个问题)

getchar函数:

和gets函数类似,也会有读取换行字符的效果。

二.缓存区

在说明这个问题之前不得不说明一下内存中缓存区的问题,如下图:

所以基于上述理论,在使用gets和getchar的时候要万分小心 换行字符(回车键)

三.具体使用

先看下面的一串代码:

这样看似乎是没有问题的,警告也只是因为没有加终止字符,但是请看下图!!!

嘶,这里则么会出现警告呢?而且显示出如下的错误

可以看出这里显示缺少“scanf_s”的整型参数,那么如何去解决这个问题呢?

       其实我们平时使用 scanf_s 函数的时候不会注意这个问题,但是在使用该函数的时候最好加上一个数字来确定最多读取多少字节,比如这里定义了一个char类型的字符,所以也就是加上数字一,具体格式如下

这样我们就解决了上述问题!!

接下来,我们回归原问题!对于上图显示无法确认密码的问题。

       根据之前所说的理论由于getchar函数会读取掉换行字符,所以我们在 输入密码 之后继续在键盘上输入的回车键(也就是换行字符)会直接被getchar读取,从而相当于输入了一个换行字符,也就是执行了else语句里面的语句!

改进!!如图:

具体改进原理相信只要理解了缓存区和getchar类型函数特点的你们也可以理解!(加油,你是最棒的)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/847642.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言王国——字符函数和字符串函数(2)

目录 5 strtok函数 5.1 函数的表达式 5.2 函数模拟 6 strstr函数 6.1 函数表达式 7 strerror函数 7.1 函数表达式 7.2 例子 7.3 perror 8 strncpy、strncat、strncmp函数 四 结论 5 strtok函数 strtok函数我的理解是他是一个分割字符串的函数 5.1 函数的表达式 cha…

StartAI:AI扩图功能,让设计更高效

在数字设计领域,图像的清晰度和细节至关重要。StartAI作为领先的AI设计工具,不断推出创新功能,以满足设计师们对高质量图像处理的需求。最新推出的扩图功能,结合了“创成式填充”技术和“PS插件”的便捷,为设计师们带来…

深度神红网络——什么是 CNN(卷积神经网络)?

Facebook和Instagram自动检测图像中的面孔,Google通过上传照片搜索相似图片的功能,这些都是计算机视觉技术的实例,它们背后的核心技术是卷积神经网络(CNN)。那么,CNN究竟是什么呢?接下来&#x…

思维导图-vb.net开发带进度条的复制文件夹功能c#复制文件夹

你们谁写代码会用流程图来做计划,或者写项目总结报告? .net带进度条复制文件夹 方案 列出所有子文件夹,再创建,复制文件 大文件可以单独做进度条 缺点:设计会更复杂 直接…

统一终端管理解决方案有哪些?必须收藏的统一终端管理软件

统一终端管理解决方案,是一种综合性的管理策略,旨在通过集中化的方式,对企业或组织的各种终端设备进行统一的管理、监控、保护和优化。以下是对统一终端管理解决方案的详细介绍。 一、方案概述 统一终端管理解决方案涵盖了从硬件到软件、从网…

[Linux系统编程]文件重定向dup和dup2

一.dup和dup2 实现重定向 1.文件描述符表 操作系统在管理文件时,会管理一张文件描述符表,根据打开的文件,分配一个文件描述符(int),根据该文件描述符,锁定指向该文件的指针,从而索取文件。 2.重定向 在li…

svg使用 element plus 使用外部下载的svg,使用或作为背景图片的使用方式,svg背景填充自适应父级宽高

friger.vue 注意:引入路径后加#svgView(preserveAspectRatio(none)),可解决宽高设置无效的问题 代码上就这两句就行,它去这个路径下去找@/assets/svgs/login-bg.svg,往这个目录下放svg文件就行<template><div class="parent-container"><el-row…

Python实现连连看6

3.2 生成图片地图 图2所示的界面实际上可以看成是一个1010的二维数组,数组中的每个国旗图片对应一个0-24中的一个值,所以每个值应该有1010(1+24)=4个,也就是该100个国旗中有25种国旗,每种国旗有4个。这种二维数组我们把它叫做图片地图,如图7所示。 图7 图片地图 要生成…

颜色分类 ---- 分治-快排

题目链接 题目: 分析: 运用将"数组分成三块"的思想: 需要定义三个指针: left指向最左侧的区域的最右边, 所以left起始为-1 right指向最右侧色区域的最左边, 所以right起始为nums.length i用来遍历数组这三个指针就将数组分成了四块 [0,left] 为0 [left 1, i] 为1 …

【工具】Vmware17 安装mac(13.6.7)虚拟机

目录 0.简介 1.环境 2.详细步骤 2.1下载mac镜像&#xff08;可以选择你所需要的&#xff09; 2.2 VMware安装 1&#xff09;创建新的虚拟机 2&#xff09;选择【典型】&#xff0c;点击下一步 3&#xff09;选择【安装程序光盘映像文件】&#xff0c;点击浏览&#xff…

服务器的初始化

服务器的初始化 新的服务器到手&#xff0c;部署服务器的初始化。 1、配置ip地址 网关 dns解析&#xff08;static&#xff09;内网和外网 2、安装源&#xff0c;外网&#xff08;在线即可&#xff09;内网&#xff08;只能用源码包编译安装&#xff09; 3、磁盘分区&#…

【python】成功解决“TypeError: ‘method’ object is not subscriptable”错误的全面指南

成功解决“TypeError: ‘method’ object is not subscriptable”错误的全面指南 一、引言 在Python编程中&#xff0c;TypeError: method object is not subscriptable错误是一个常见的陷阱&#xff0c;特别是对于初学者来说。这个错误通常意味着你尝试像访问列表、元组、字典…

2024蓝桥杯初赛决赛pwn题全解

蓝桥杯初赛决赛pwn题解 初赛第一题第二题 决赛getting_startedbabyheap 初赛 第一题 有system函数&#xff0c;并且能在bss上读入字符 而且存在栈溢出&#xff0c;只要过掉check函数即可 check函数中&#xff0c;主要是对system常规获取权限的参数&#xff0c;进行了过滤&…

upload-labs-第一关和第二关

目录 第一关 思路&#xff1a; 1、上传一个php文件 2、查看源码 3、查看文件上传地址 4、BP抓包&#xff0c;修改文件后缀名 5、使用蚁剑连接 第二关 1、这一关也可以跟第一关一样的方法进行绕过 2、上传一个一句话木马文件 第一关 原理&#xff1a; 思路&#xff1a…

高精度滚珠丝杆在自动化生产中的关键因素!

如今&#xff0c;自动化技术正以前所未有的速度改变着人们的生活和工作方式&#xff0c;特别是在高精度精密设备的制造与应用领域&#xff0c;提高生产效率和优化生产流程正变得越来越重要。在自动化生产中&#xff0c;滚珠丝杆的优化应用对于提高生产效率、保证产品质量至关重…

MedSAM 学习笔记(续):利用训练好的权重进行gui的推理

1、介绍 MedSAM 代码复现参考&#xff1a;第一章&#xff1a;MedSAM 视觉大模型介绍_medsam 系统简介-CSDN博客 利用MedSAM迁移学习训练自定义数据集介绍&#xff1a;MedSAM 学习笔记&#xff08;续&#xff09;&#xff1a;训练自定义数据集_sam训练自定义数据-CSDN博客 本文…

leetcode第867题:转置矩阵

matrix[i][j]需要放在转置矩阵的(j,i)位置 public class Solution {public int[][] Transpose(int[][] matrix) {int rows matrix.Length; int columns matrix[0].Length; int[][] array2 new int[columns][];// 初始化内部数组&#xff08;列数&#xff09;for (int i 0…

通过仪器分类方式修订看监测仪器发展新趋势

随着科技的进步和监测需求的不断升级&#xff0c;监测仪器的分类方式亟需与时俱进。本文旨在探讨《混凝土坝监测仪器系列型谱》中对现有仪器分类方式的修订&#xff0c;以及监测仪器发展的新趋势相关内容。 一、仪器分类方式的修订 传统的仪器分类方式往往基于功能、原理或应用…

Linux文本处理三剑客之awk命令

官方文档&#xff1a;https://www.gnu.org/software/gawk/manual/gawk.html 什么是awk&#xff1f; Awk是一种文本处理工具&#xff0c;它的名字是由其三位创始人&#xff08;Aho、Weinberger和Kernighan&#xff09;的姓氏首字母组成的。Awk的设计初衷是用于处理结构化文本数…

漏洞发现协议代理池GobyAWVSXray

Awvs漏扫-Sadedog-白名单-内置 加入白名单扫描&#xff0c;防Safedog拉黑IP Awws漏扫-BT&Aliyun-代理池-内置 Xray漏扫-BT&Aliyun-Proxifier-.进程 proxifier添加代理服务器 Goby漏扫-BT&Aliyun-Socket5-内置 对于不通过https对网站或操作系统进行信息收集的程…