【发布时间】:2010-10-31 10:33:54
【问题描述】:
我一直试图让sscanf 使用字符类识别一种相当简单的格式。我注意到,当我为 sscanf 提供 char* 以匹配字符类时,它也会覆盖前一个字节,就好像它需要一个指向 2 个字节的指针一样。
我正在尝试完成的简化版本:
#include <stdio.h>
int main(void)
{
char num1;
char num2;
int s;
s = sscanf("1,2", " %[01234567] , %[01234567]", &num1, &num2);
printf("%d %c %c\n", s, num1, num2);
return 0;
}
预期输出:2 1 2
实际输出:2 2
但是,如果我将 char 替换为 short(或其他大于一个字节的内容),那么它会按预期工作,但我会收到有关 format expects type char* 的警告。
参数实际上应该是什么类型,还是我犯了其他错误?
【问题讨论】: