sscanf的安全版本sscanf_s的函数定义:
int sscanf_s( const char *buffer, const char *format [, argument ] ... );

在msdn中有如下mark,一定要仔细看哟,特别注意红色的部分,否则会出错的,我就在这里折腾了大半天才明白的

The sscanf_s function reads data from buffer into the location given by each argument. The arguments after the format string specify pointers to variables with a type that corresponds to a type specifier in format. Unlike the less secure version sscanf_sa buffer size parametersizeOfBuffer is required when using the type field characters c, C, s, S and [. This parameter must be supplied as an additional parameter after each buffer which requires it.

也可以看下面这个例子的,注意红色的部分

// crt_sscanf_s.c
// This program uses sscanf_s to read data items
// from a string named tokenstring, then displays them.

#include <stdio.h>

int main( void )
{
   char  tokenstring[] = "15 12 14...";
   char  s[81];
   char  c;
   int   i;
   float fp;

// Input various data from tokenstring:
   // max 80 character string plus NULL terminator
   sscanf_s( tokenstring, "%s", s, sizeof(s) );
   sscanf_s( tokenstring, "%c", &c, sizeof(char) );

   sscanf_s( tokenstring, "%d", &i );
   sscanf_s( tokenstring, "%f", &fp );

// Output the data read
   printf_s( "String    = %s\n", s );
   printf_s( "Character = %c\n", c );
   printf_s( "Integer:  = %d\n", i );
   printf_s( "Real:     = %f\n", fp );
}

Output

String = 15 Character = 1 Integer: = 15 Real: = 15.000000
fscanf_s,fwscanf_s用法和sscanf_s差不多,只是把字符串换成了打开的流。
转自 http://blog.sina.com.cn/s/blog_670e606a0100m1d1.html

sscanf_s函数相关推荐

  1. sscanf 与 sscanf_s的区别

    众所周知,使用C语言读取文本,比C++的文件流快的多,而C语言格式化读取最常用.功能最强大的函数是:sscanf. 关于sscanf函数的用法,有一篇文章讲解的很详细.很透彻,大家可以查看链接:htt ...

  2. 初识sscanf_s

    本人用rapidxml写一个学生信息操作的时候遇到了一个问题:一个由多个原子信息构成的属性值字符串如何取出其中单个的某个原子信息.xml文件内容如下: <?xml version="1 ...

  3. sscanf,sscanf_s及其相关用法

    <stdio.h> or <wchar.h> 定义函数 int sscanf (const char *str,const char * format,........); 函 ...

  4. 编写OD插件将IDA中分析出来的函数名导入到OD中

    逆向程序的时候,喜欢用IDA静态分析,用OD动态调试,如果把IDA分析出来的函数名称都导入到OD中,调试的时候就知道哪些函数不需要再看了.以前我一直用GODUP的map loader,但是有些时候感觉 ...

  5. C语言sscanf()函数(从字符串读取格式化输入,提取需要的信息)

    需包含头文件:C 标准库 - <stdio.h> 文章目录 描述 声明 参数 返回值 实例 我在VS上测试(VS上要用sscanf_s) 示例1 示例2(提取时能默认以空格分割) 描述 C ...

  6. 高级C语言教程-sscanf()函数使用方式

    C语言支持可变参数的函数,这需要采用 #include <stdio.h>int main( void ) {char tokenstring[] = "15 12 14...& ...

  7. sscanf,sscanf_s及其相关用法(字符串格式化为其他类型)

    #include<stdio.h> 定义函数 int sscanf (const char *str,const char * format,........); 函数说明   sscan ...

  8. sscanf和sscanf_s使用方法

    链接:点击打开链接 #include<stdio.h> 定义函数 int sscanf (const char *str,const char * format,........); 函数 ...

  9. C++中使用strtok函数分割字符串String

    C++中使用strtok函数分割字符串String string str; getline(cin,str); vector<string> vec; char *p = strtok(( ...

  10. 什么是CRT函数以及常用的CRT函数

    什么是CRT函数 C Runtime是windows平台下的一个概念.一般来说,CRT函数就是标准的C语言函数.例如,printf.scanf.strlen.fopen等函数就属于CRT函数. 在wi ...

最新文章

  1. OpenSSL的SSL/BIO_get_fd
  2. 数据结构-数组模拟队列-环形实现(JAVA)
  3. div/span强制不换行
  4. reactor模型_Reactor模式以及Netty中的应用
  5. 年薪50万,他们招180名博士
  6. Java 练习:编写 Java 程序,输入年份和月份,使用 switch 结构计算对应月份的天数。月份为 1、3、5、7、8、10、12 时,天数为 31 天。月份为 4、6、9、11 时,天数为 3
  7. ORA-17129=SQL 字符串不是DML 语句
  8. 腾讯云html5直播开发,腾讯云IM开发 直播 聊天室
  9. 迅雷上传速度怎么限制的方法
  10. newifi刷老毛子笔记
  11. DEP bypass
  12. 接口文档与接口文档管理工具
  13. 微信有什么办法可以让加人不频繁?
  14. 数据可视化之设计经验分享:轻松三步教你学会制作数据可视化大屏思路
  15. 阿里云使用笔记-第三篇-使用阿里云App连接实例
  16. Apriori算法的python实现
  17. 华南师范大学校园网自动登录教程
  18. 有机化学php,有机化学原理
  19. Unity调用Window提示框Yes/No(英文提示窗)
  20. 无法启动MySQL服务,提示“错误1069,由于登录失败而无法启动服务”

热门文章

  1. linux卸载wine qq,ubuntu安装wineQQ
  2. 用好这两大office模板资源网,办公轻松又高效
  3. vue根据拼音选择城市better-scroll
  4. Java关键字表格、Java有哪些关键字?
  5. 【优化模型】逐步回归算法
  6. 基于Java实现的班级信息管理系统
  7. java 学生考勤系统(三、签到功能)
  8. 『Java安全』tabby代码审计工具Windows环境搭建
  9. Keil5 显示汉字时字体不生效,设置国标时,字体设置无效。
  10. CentOS7.5搭建ELK6.2.4集群及插件安装