VC中scanf/sscanf不支持%hhx格式,若使用将可能导致程序错误甚至崩溃
2013-05-13 18:04
260 查看
C99对printf和scanf系列函数新增了%hhx的格式,这有时候会很方便。但Microsft的VC还不支持C99,这里的hhx也不例外。MSDN上对格式字符串是这样描述的:
http://msdn.microsoft.com/en-us/library/kwwtf9ch(v=vs.110).aspx
% [*]
[width]
[{h | l | ll | I64 | L}]type
细心的人注意到,这里的long有l和ll两种,但h只有一种!如果使用%hhx,会导致堆栈被破坏,甚至程序崩溃。
顺便提一下,C99标准的 snprintf 与微软的 _snprintf 功能上是很不一样的。
http://msdn.microsoft.com/en-us/library/kwwtf9ch(v=vs.110).aspx
% [*]
[width]
[{h | l | ll | I64 | L}]type
细心的人注意到,这里的long有l和ll两种,但h只有一种!如果使用%hhx,会导致堆栈被破坏,甚至程序崩溃。
顺便提一下,C99标准的 snprintf 与微软的 _snprintf 功能上是很不一样的。
相关文章推荐
- 格式程序VC中scanf/sscanf不支持%hhx格式,若使用将可能导致程序错误甚至崩溃
- [C] 跨平台使用TCHAR——让Linux等平台也支持tchar.h,解决跨平台时的格式控制字符问题,多国语言的同时显示(兼容vc/gcc/bcb,支持Windows/Linux/Mac)
- cocos2dx 2.2.6 使用 HttpClient 可能导致部分新设备崩溃的问题
- [C] 跨平台使用TCHAR——让Linux等平台也支持tchar.h,解决跨平台时的格式控制字符问题,多国语言的同时显示(兼容vc/gcc/bcb,支持Windows/Linux/Mac)
- vc2010使用CMFCEditBrowseCtrl控件导致程序退出崩溃解决
- [C] 跨平台使用TCHAR——让Linux等平台也支持tchar.h,解决跨平台时的格式控制字符问题,多国语言的同时显示(兼容vc/gcc/bcb,支持Windows/Linux/Mac)
- 异常信息:CLR无法从COM 上下文0x645e18 转换为COM上下文0x645f88,这种状态已持续60秒。拥有目标上下文/单元的线程很有可能执行的是非泵式等待或者在不发送 Windows 消息的情况下处理一个运行时间非常长的操作.这种情况通常会影响到性能,甚至可能导致应用程序不响应或者使用的内存随时间不断累积
- 解决服务器返回错误数据格式导致Json解析出错造成app崩溃
- 在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的。如果在 IIS 中没有将虚拟目录配置为应用程序,则可能导致此错误。
- Java中使用错误的编码格式导致乱码如何恢复
- EXCEL: 数字格式不一样导致VLOOKUP无法正常使用
- scanf/sscanf %[]格式控制串的用法(转)
- net控件中数据导到Excel的格式 首先,我们了解一下excel从web页面上导出的原理。当我们把这些数据发送到客户端时,我们想让客户端程序(浏览器)以excel的格式读取它,所以把mime类型设为:application/vnd.ms-excel,当excel读取文件时会以每个cell的格式呈现数据,如果cell没有规定的格式,则excel会以默认的格式去呈现该cell的数据。这样就给我们提供了自定义数据格式的空间,当然我们必须使用excel支持的格式。下面就列出常用的一些格式: 1) 文本
- 【Android开发经验】LayoutInflater—— 你可能对它并不了解甚至错误使用
- artTemplate--使用artTemplate时,由于json对象属性有数字命名格式 导致调用报错 syntax error
- 在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的。如果在 IIS 中没有将虚拟目录配置为应用程序,则可能导致此错误。
- 使用MapX的基石,在VC下显示gst格式的地图
- scanf/sscanf %[]格式控制串的用法(转)
- 在VC中使用CImage转换图片格式,显示jpg等格式图片
- eclipse使用subclipse导致jvm崩溃