scanf 返回值_scanf函数

3ef50cca1b471bb506ed714097c7a5ab.png

一、函数

scanf()是C语言中的一个输入函数。与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include <stdio.h>。它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。

函数的原型为:

int scanf(const char * restrict format, ...);

函数的第一个参数是格式化字符串,它指定了输入的格式,并按照格式说明符解析输入对应位置的信息并存储于可变参数列表中对应的指针所值位置,每一个指针要求非空,并且与字符串中的格式一一顺次对应。

格式化字符串参考:

printf函数——二、Format​zhuanlan.zhihu.com
af380cf4888ae76f6fb128a722250d2f.png

补充:%[] 扫描字符集合。

函数返回值为整型。如果成功,返回成功匹配和赋值的个数;如果到达文件末尾或发生读错误,则返回EOF。

如:scanf(“%d%d”, &a, &b);

如果只有a被成功读入,返回值为1;如果a和b都未被成功读入,返回值为0;如果遇到错误或遇到end of file,返回值为EOF。


二、注意事项

  1. scanf的双引号内永远不要加“非输入控制符”。除了“输入控制符”之外,什么都不要加,否则就是自找麻烦,而且对于用户而言,肯定是输入越简单越好。在scanf中,所有的“非输入控制符”都必须要原样输入;
  2. 参数的个数一定要对应。无论在顺序上,还是在个数上,一定要一一对应;
  3. 输入的数据类型一定要与所需要的数据类型一致,对于输入的数据类型是用户输入的,所以在写程序时要考虑容错处理;
  4. 在使用scanf之前使用printf提示输入,可以大大提高代码的质量。

三、实战

1. 警告 C6031 返回值被忽略:“scanf”。

原因:参考scanf函数返回值。

解决方案:

(1)采用以_s结尾的安全版本(推荐);

(2)根据scanf函数返回值判断用户输入是否合法,作出相应处理。

2. 错误 C4996 ‘scanf’:This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

原因:这种微软的警告,主要因为那些C库的函数,很多函数内部是不进行参数检测的(包括越界类),微软担心使用这些会造成内存异常,所以就改写了同样功能的函数,改写了的函数进行了参数的检测,使用这些新的函数会更安全和便捷。关于这些改写的函数不用专门去记忆,因为编译器对于每个函数在给出警告时,都会告诉相应的安全函数,查看警告信息就可以获知,在使用时也在查看一下MSDN详细了解。

解决方案:

(1)采用以_s结尾的安全版本(推荐);

(2)在头文件包含的最前面(在include的前面)加上:#define _CRT_SECURE_NO_WARNINGS;

(3)在头文件包含的最前面(在include的前面)加上:#pragma warning(disable:4996);

(4)通过以下步骤:调试->属性->C/C++->预处理器->预处理器定义->编辑->输入“_CRT_SECURE_NO_WARNINGS”->确定。

8a30c7b1abe499bd804a72832b05eb3c.png
(4)第一、二步

0d618230499acd8ae7de56132d4826a8.png
(4)第三、四、五、六步

49bfcbaa43a90801571e1d97853e81db.png
(4)第七、八、九步

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

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

相关文章

【Git】Git-常用命令备忘录(三)

git作为一个vcs&#xff08;version control system&#xff09;&#xff0c;是越用越香&#xff0c;那么还有哪些比较香的地方呢&#xff01;&#xff1f;1.远程仓库中拉取指定分支一定遇到这种情况&#xff0c;github看到一个心仪的开源仓库&#xff0c;但是分支太多&#xf…

jenkins换服务器找不到包,服务器重启后Jenkins项目部分丢失问题解决方法

UVALive 4670 Dominating Patterns --AC自动机第一题题意:多个模板串,一个文本串,求出那些模板串在文本串中出现次数最多. 解法:AC自动机入门模板题. 代码: #include #include phpMyAdmin - 错误 您应升级到 MySQL 5&period;5&period;0 或更高版本&comma;解决办法。…

mysql表类型_MySQL表类型的选择

P131)创建表时的默认引擎是InnoDB&#xff0c;如果要修改默认的存储引擎&#xff0c;可以在参数文件中设置default-table-type。查看当前的默认存储引擎&#xff0c;可以使用一下命令&#xff1a;创建新表的时候可以通过增加ENGINE关键字设置新建表的存储引擎。也可以通过ALTER…

计算机怎么取消脱敏设置,一种敏感数据自适应的脱敏方法、系统技术方案

【技术实现步骤摘要】一种敏感数据自适应的脱敏方法、系统本专利技术涉及计算机技术与信息安全领域&#xff0c;并且更具体地&#xff0c;涉及一种敏感数据自适应的脱敏方法、系统。技术介绍随着数据时代的到来&#xff0c;数据中蕴藏的巨大价值得以挖掘&#xff0c;同时也带来…

ASP.NET Core Controller与IOC的羁绊

前言看到标题可能大家会有所疑问Controller和IOC能有啥羁绊&#xff0c;但是我还是拒绝当一个标题党的。相信有很大一部分人已经知道了这么一个结论&#xff0c;默认情况下ASP.NET Core的Controller并不会托管到IOC容器中&#xff0c;注意关键字我说的是"默认"&#…

win10 mysql my.cnf_MySQL配置文件无法修改的解决方法(Win10)

帮别人解决的问题&#xff0c;记录一下。问题描述MySQL的版本是5.7&#xff0c;操作系统是window10。MySQL安装在 C:\Program Files 下。最近需要在MySQL安装目录下的 my-default.ini 配置文件里面加上一个新的配置项&#xff1a;max_allowed_packet100M编辑文件后保存&#xf…

服务器机房 维护,服务器机房建设与管理维护.pdf

服务器服务器机房机房建设与管理维护建设与管理维护服务器服务器机房机房建设与管理维护建设与管理维护电子科技大学信息中心目录服务器机房的设计和建设服务器机房的设计和建设服务器机房的运行维护和管理服务器机房的设计与建设一、机房对信息化的发展的重要性二、计算机…

引入Jaeger——扩展

Jaeger是收集全链路跟踪的信息&#xff0c;在Jaeger收集的信息中&#xff0c;有请求的url信息&#xff0c;有每个请求的时间间隔&#xff0c;借助这些信息可以进行报警&#xff0c;比如一次较长的请求&#xff0c;或者是某些请求的次数和先后等。不管报警的业务规则是什么&…

mysql 操作类 C .net_.NET MYSQL数据库操作基类( C#源码)

使用MySql.Data.dll&#xff0c;它.Net访问MySQL数据库的一个驱动  下载DbHelperMySql.CSusing System;using System.Collections;using System.Collections.Specialized;using System.Data;using System.Data.SqlClient;using System.Configuration;using MySql.Data.Types;…

判断 服务器架构性能 数据,服务器架构之性能扩展-第五章(6)

Mysql>create table t2 like t1;//复制表结构Mysql>insert into t2 select * from t1; //复制数据内容索引是一种快速查询的有效方法&#xff0c;可以通过alter增加索引或create语句创建。mysql>alter table t1 add ind_id (id);mysql>alter table t1 add unique/p…

微服务畅想录

关于微服务的文章&#xff0c;网络上很多&#xff0c;也比较专业。下面&#xff0c;我尝试着用简单的话写点自己对微服务的理解&#xff0c;非常接地气&#xff0c;但只是一家之言&#xff0c;大家还是带着辩证的眼光来读。1、微服务的本质是什么&#xff1f;微服务的本质是&am…

mysql sql 检测磁盘_MySQL 数据库磁盘占用情况查询

查询所有数据库占用磁盘空间大小的SQL语句&#xff1a;select TABLE_SCHEMA, concat(truncate(sum(data_length)/1024/1024,2), MB) as data_size,concat(truncate(sum(index_length)/1024/1024,2),MB) as index_sizefrom information_schema.tablesgroup by TABLE_SCHEMAorder…

anjularjs ajax 调用,AngularJS AJAX调用的服务(AngularJS Ajax Call in Service

我想我的应用程序&#xff0c;使AJAX调用一个RESTful Web服务。 在我的html文件是连接到一个范围对象两个文本框。 这两个领域都连接到通过NG-变“后”功能。 post方法发送“形式”变量从范围的API和web服务增加了两个数字&#xff0c;并用JSON文件&#xff0c;该文件现在包含的…

如何在 ASP.NET Core 中 使用 功能开关

.NET Core 中的 功能管理 (Feature Management) 包可用于实现 功能开关&#xff0c;什么意思呢&#xff1f;就是可以通过 功能开关 特性动态的改变应用程序的行为而不需要改变任何的业务逻辑代码&#xff0c;听起来是不是挺有意思&#xff0c;本篇我们就来讨论如何使用这个包。…

存储mysql数据存在特殊字符时处理_SQL数据库对于保存特殊字符的解决办法

数据库的Char、Vachar类型可以兼容汉字&#xff0c;但特殊字符不行&#xff0c;在保存包含有特殊字符的字符串、正文时&#xff0c;会将特殊符号替换成一个”?”号。例如&#xff1a; “基础教育课程手机报•特刊” 》 “基础教育课程手机报?特刊”解决办法是将字段改成NCha…

接口 Swagger 部分Web API的隐藏

背景Swagger是目前最受欢迎的REST APIs文档生成工具&#xff0c;同时也是API的在线测试工具。功能强大谁用谁知道。我就不用在这里推广它了。今天要解决的问题是&#xff1a;如果让一些特定的API接口在Swagger中不显示&#xff0c;即从Swagger中过滤掉一些不想展示的接口&#…

mysql流程控制_Mysql之流程控制结构

顺序结构&#xff1a;程序从上往下依次执行分支结构&#xff1a;程序从两条或多条路径中选择一条去执行循环结构&#xff1a;程序在满足一定条件的基础上&#xff0c;重复执行一段代码一、分支结构1、if函数功能&#xff1a;实现简单的双分支语法&#xff1a;if(表达式1, 表达式…

文件共享服务器第二部,第二章-构建Samba文件共享服务器.docx

洛阳鸿卓国际IT洛阳鸿卓国际IT教育培训中心姓名&#xff1a; 梁冬辉时间&#xff1a;2012章实验报告所在班级&#xff1a; T1181月16实 验 任 务日Linux服务器版系统的地址为Win dows系统的地址为网络拓扑检查smb服务消息是否安装[rootocaThOSt /]# cd /unt/Asianux/RPMS/i roo…

「译」 .NET 5 新增的Http, Sockets, DNS 和 TLS 遥测

.NET 一直在稳定的增加和改善对应用程序进行跨平台的诊断分析&#xff0c;在.NET Core 3.0&#xff0c; 我们看到了 EventCounters[1] 的介绍&#xff0c;用于观察和分析指标测量。我最近在几个 .NET Core 的应用程序中使用 counters&#xff0c;来跟踪服务一段时间内 http 的请…

服务器磁盘系统,服务器磁盘阵列与操作系统

服务器磁盘阵列与操作系统 内容精选换一换硬件要求如表1所示。操作系统要求如表2所示。上表中所需Ubuntu下载地址&#xff1a;服务器1&#xff1a;Ubuntu 18.04.1镜像包、Ubuntu 16.04.4 镜像包。服务器2&#xff1a;Ubuntu 16.04.3 镜像包。在安装操作系统过程中“选择软件列表…