- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在下面的代码中,我想读取十六进制字符串 'a' 中的前 2 个字符,使用 sscanf 将它们转换为相应的字节值并将结果放入 'b'。不应对“a”执行任何修改。
#include <stdio.h>
#include <string.h>
int main()
{
unsigned char a[]="fa23456789abcdef"; // 0-9 a-f
unsigned char b;
unsigned int idx = 0;
for(idx = 0; idx < 16; idx++)
printf("%c", a[idx]); // raw dump 'a'
printf("\n");
sscanf(a, "%2hhx", &b); // do sscanf
printf("%d\n", b); // check that 'b' has been correctly updated
for(idx = 0; idx < 16; idx++)
printf("%c", a[idx]); // raw dump 'a'... again
return 0;
}
输出:
fa23456789abcdef
250
3456789abcdef
编译器(Code::Blocks 中的 GNU GCC):
[...]|14|warning: pointer targets in passing argument 1 of 'sscanf' differ in signedness [-Wpointer-sign]|
[...]stdio.h|348|note: expected 'const char *' but argument is of type 'unsigned char *'|
[...]|14|warning: unknown conversion type character 'h' in format [-Wformat]|
[...]|14|warning: too many arguments for format [-Wformat-extra-args]|
||=== Build finished: 0 errors, 3 warnings (0 minutes, 0 seconds) ===|
在输出中,“a”的前 3 个字符被 3 个空字符替换,原因不明。所有警告都指向 sscanf 行。此外,code::blocks 出于某种原因不喜欢 'h' 修饰符,即使 'b' 值已正确更新也是如此。
预期结果:
fa23456789abcdef
250
fa23456789abcdef
在这种情况下可以替代使用 strtol 吗?
最佳答案
您的 sscanf
不支持 hh
,这意味着它正在转换为 unsigned int
并试图将其填充到 unsigned char
大小的变量,导致未定义的行为。在您的情况下,这显然意味着要覆盖 a
的一部分。修正你的警告!
如果您的 sscanf
确实 支持 hh
,您会没事的,但您可能仍应更改 a
成为 char
数组而不是 unsigned char
。
你需要阅读你本地的 sscanf
文档来弄清楚你应该传递什么,或者只是将 b
更改为 unsigned int
并使用 "%2x"
作为您的格式字符串。
关于c - sscanf 后输入字符串中的空字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18540998/
我正在尝试用 Java 构建一个字符串,该字符串的长度最多为 3,最少为 1。 我正在根据整数数组的内容构建字符串,如果数组的内容为 -1,我想在字符串中输出一个空字符。否则字符串将包含整数的字符版本
我有一个类,其中有一个方法可以在字符串中包含 NUL 字符的情况下终止程序。具体表达是这样的: stringVar.indexOf('\u0000') < 0 这个字符串是通过 Scanner 从用户
我有一个 wchar_t 数组。我需要在数组中的特定位置添加一个 unicode 空字符。 wchar_t var1[100]; var1[79] = '\u0000'; 我尝试了上面的方法,但出现以
好吧,这听起来可能是重复的,但我已经尝试了所有可能性,例如 str.strip()、str.rstrip()、str.splitline (),还 if-else 检查像: if str is not
System.out.println("-----------------------------------------------------------"); System.out.pr
我有一个奇怪的问题。我从公司内部的许多不同应用程序接收数据,并将这些数据显示在网站上。根据发送数据的系统,数据本身可能在字符串中包含一些奇怪的字符。我的问题是我有一个用户可以搜索以允许其中包含此数据的
我遇到了 aSSL ,这似乎有几年历史了,想知道是否有人有其他“安全”AJAX 连接代码示例?显然,这不如使用 SSL 证书安全,但使用 null character SSL在那里进行攻击(最近针对
我有一个类似于以下内容的 pyspark 数据框: df = sql_context.createDataFrame([ Row(a=3, b=[4,5,6],c=[10,11,12], d='b
我有以下要执行的查询: MyModel.objects.annotate(current_name=Coalesce('nickname', 'name')).order_by('current_na
每当 rails 变量等于 nil(或者实际上每当我使用 rails 代码(参见第 3 个代码示例))时,我的 html 中就会得到一串空字符。 new.html.haml %h1.editable.
我是一名优秀的程序员,十分优秀!