sscanf格式和输出限额

时间:2015-08-24 13:34:21

标签: c string scanf

我正在尝试理解sscanf格式。是否可以将C字符串数组输出到(下面的代码给出了一个段错误,这是提示问题的原因)?此外,当尝试仅为字符串采用特定字符时,格式为%[abc]s,其中abc是要保留的字符集?

char s[] = "This is a 345.454 test";
char str[6][256];
double f;
sscanf(s,"%s %*s %*s %f %s",s[0],f,s[1]);
for(int i=0; i<2; i++)
    printf("%s\n",s[i]);

2 个答案:

答案 0 :(得分:3)

重写sscanf行,如下所示 -

sscanf(s,"%s %*s %*s %lf %s",str[0],&f,str[1]);
                                    ^address of float variable required

在数组for loop的{​​{1}}打印值中。

请在此处查看工作代码 - https://ideone.com/hFpvDJ

答案 1 :(得分:0)

s[0]是一个字符,但是你有一个%s格式,它需要一个字符串(字符的地址,序列中的第一个)解析后的值应该去哪里。