scanf() 函数 :

scanf() 函数是格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。

其调用格式为:scanf("<格式化字符串>",<地址表>)。

scanf_s()函数:

scanf_s() 的功能虽然与scanf() 相同,但却比 scanf() 安全,因为 scanf_s() 是针对“ scanf()在读取字符串时不检查边界,可能会造成内存泄露”这个问题设计的。

scanf_s()用于读取字符串时,必须提供一个数字以表明最多读取多少位字符,以防止溢出。

实例:(统计输入字符串中原因字母出现的个数)(调试环境:visual studio 2010  C++)

#include<stdio.h>
       #include<string.h>

#include<stdlib.h>
       #include<CountVowel.h>

int CountVowel(char str[])
       {
          int counter = 0;
          int i;
          for (i = 0; str[i] != '\0' ; ++i )
          {   switch(str[i])

{ case 'a':
              case 'e':
              case 'i':
              case 'o':
              case 'u':
              case 'A':
              case 'E': 
              case 'I':
              case 'O':
              case 'U':
                    ++counter;
              }
         }
         return counter;
       }

void main()
      {
       char buffer[128];                               
       printf("Please input a string:\n");
       scanf_s("%s" , buffer,128);                     /*   这里必须要有128,以表明最多读取128个字符,如果写成scanf_s("%s",buffer),程序将无法执行到底,且编译器会提示“Unhandled exception at 0xfefefefe in array.exe:0xC0000005: Access tion.” 。当然在安全性要求不高的情况下,不 一定非要用scanf_s()函数,可用scanf("%s",buffer)代替。  */

printf("%d vowels appear in your string.\n",CountVowel(buffer));

system("pause");
       }

初学C语言,把一些心得记录下来,以供自己以后参考。

scanf() 与 scanf_s() 的区别相关推荐

  1. 浅谈scanf和scanf_s的区别,以及应对VS返回值被忽略的报错问题。

    文章目录 前言 一.scanf和scanf_s是什么? 二.分别分析 1.scanf 2.scanf_s 3其实scanf和scanf_s在使用时只会在vs中有不同. 前言 随着IT行业的火爆,不少初 ...

  2. scanf与scanf_s的区别

    自从用VisualStudio2015之后就不愿再去使用Visual C++6.0了,但是最近在学数据结构图时,总是在字符的连续输入遇到困惑. 使用VS都知道,要用scanf_s对键盘读入数据. sc ...

  3. <C语言学习>scanf和scanf_s的区别

    scanf()不会检查输入的边界,因此输入的数据可能会溢出,导致程序出错 scanf_s()更安全,其会检查输入的边界 如: char ch[6]; scanf("%s",ch); ...

  4. scanf()与scanf_s()的区别

    scanf() 函数 : scanf() 函数是格式化输入函数,它从标准输入设备(键盘) 读取输入的信息. 其调用格式为:scanf("<格式化字符串>",<地址 ...

  5. C语言中,scanf与scanf_s的简单区别

    C语言中,scanf与scanf_s的简单区别 scanf()不会检查输入边界,可能造成数据溢出,scanf_s()会进行边界检查. 如name[5], scanf("%s",na ...

  6. c语言scanf错误c4996,C语言杂谈(一)scanf()、scanf_s()与错误 C4996

    错误 C4996 初学C语言时,第一个接触到的I/O函数便是scanf()了.但在高版本的 Visual Studio (包括但不限于2015.2013.2012)编译代码时,却会出现意想不到的错误. ...

  7. c语言scanf错误c4996,C语言常见错误杂谈(一)scanf()、scanf_s()与错误 C4996与解决方法...

    错误 C4996 初学C语言时,第一个接触到的I/O函数便是scanf()了.但在高版本的 Visual Studio (包括但不限于2015.2013.2012)编译代码时,却会出现意想不到的错误. ...

  8. c语言scanf错误c4996,C语言杂谈(一)scanf()、scanf_s()与错误 C4996(示例代码)

    错误 C4996 初学C语言时,第一个接触到的I/O函数便是scanf()了.但在高版本的 Visual Studio (包括但不限于2015.2013.2012)编译代码时,却会出现意想不到的错误. ...

  9. scanf与scanf_s区别

    最近有这么一篇作业,输入十个等长字符串并为其排序,本来是很简单的一道题,结果运行时却疯狂越界,百度了之后才知道是scanf的锅,于是决定查查其区别. 最大区别为scanf()在读取数据时不检查边界,所 ...

最新文章

  1. 在Asp.Net MVC中设定site路径所对应的默认action
  2. 大数据-07-Spark之流数据
  3. 松果出行CTO朱蓝天做客《智慧Talk》,解开共享电单车产研密码
  4. apache的斜杠问题
  5. Unity之流光效果
  6. Visual Studio怎么使用中文帮助文档
  7. 如何学人工智能的思考
  8. gini系数 决策树_案例7:机器学习--使用决策树实现泰坦尼克号乘客生存率预测...
  9. Linux常用终端命令及扩展(五)
  10. android3种播放视频方式,Android 两种方式播放视频
  11. 我的世界HMCL如何安装Java_Ubuntu 18.04 LTS 使用 Minecraft 我的世界第三方启动器 HMCL...
  12. 图示-实现hive的文件与hdfs的导入导出
  13. 苹果se2_太快了!苹果已面向iPhone SE 2用户推送iOS 13.4.1
  14. 2013年计算机试题(三),2013年计算机等级考试(一级Ms Office)经典试题(三)及答案...
  15. 哪个软件能准确测试人脸,人脸识别软件哪个好?人脸识别软件推荐2020
  16. MDWechat(微信美化)免费
  17. 记录一些使用化学软件的心得(含bug和问题解决)
  18. 1024程序员节盛大开幕,九大操作系统掌门人、六代技术人齐聚岳麓,见证技术大时代
  19. rsa/ecb/pkcs1padding php,PHPJAVA RSA/ECB/PKCS1Padding 加密解密
  20. pybullet中欧拉角姿态可视化及顺序记录(画机械臂末端坐标)

热门文章

  1. 域名一定需要备案吗?什么情况下不用备案?
  2. python读写protobuf
  3. 从公司管理到IT审计-网摘
  4. 西部数据 4TB蓝盘出现问题无法使用
  5. 你会用Python写洗脑神曲吗?
  6. 智慧园区线上3d建模可视化数字孪生管理系统
  7. 今年十月最新语言排行榜
  8. swoft实现自动重启服务
  9. 学平面设计能做什么?平面设计都有哪些内容
  10. [译] 2019 年了,为什么我还在用 jQuery?