sscanf 格式化和输出限额
sscanf formatting and output allowances
我正在尝试理解 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]);
s[0]
是一个字符,但您将其与 %s
格式匹配,该格式需要一个字符串(字符的 地址 ,解析值应该去的序列中的第一个)。
重写sscanf
行如下-
sscanf(s,"%s %*s %*s %lf %s",str[0],&f,str[1]);
^address of float variable required
并在 for loop
中打印数组 str
的值。
在此处查看工作代码-https://ideone.com/hFpvDJ
我正在尝试理解 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]);
s[0]
是一个字符,但您将其与 %s
格式匹配,该格式需要一个字符串(字符的 地址 ,解析值应该去的序列中的第一个)。
重写sscanf
行如下-
sscanf(s,"%s %*s %*s %lf %s",str[0],&f,str[1]);
^address of float variable required
并在 for loop
中打印数组 str
的值。
在此处查看工作代码-https://ideone.com/hFpvDJ