如何使用sscanf函数的FORMAT部分(或者如何使用sscanf函数)

时间:2011-07-31 03:06:47

标签: c

我在程序中遇到以下行。从阅读手册,我知道sscanf从指向argv [2]的地方复制,但我不确定为什么FORMAT被指定为%d,同时,%c(我见过其他双引号中包含更多格式说明符的示例。是因为sscanf将小数写入struct元素“%g.number”,一个字符为“%c”?谢谢!

sscanf(argv[2], " %d %c", &g.number, &c)

2 个答案:

答案 0 :(得分:1)

是。从argv [2]读取,一个整数到g.number,一个char到c。

例如argv [2]可以是“123 a”

答案 1 :(得分:1)

它指定的是零个或多个空白字符后跟一个数字,后跟零个或多个空格字符,然后是一个字符。它将数字的值放在g.number中,将字符放在c中。我不确定为什么它会扫描一个数字然后是一个字符,但是如果输入没有以数字开头,则不会将任何内容分配给任何变量,并且sscanf的返回值将为零,这是多少变量如果它失败了,那么g.number中的值将是它占用的内存槽中的任何值,这可能是任何东西,因此是未定义的。