一、读入含double
类型的数据易错点
- 正确用法
double x;
char str[10];
char p[100]="I love 1.23";
sscanf_s(p,"%s %lf",&str, &x);
- 错误用法
sscanf_s(p,"%s %f",&str, &x);//注意引号内部%f
或
sscanf_s(p,"%s %d",&str, &x);//注意引号内部%d
- 上面两个错误用法都不能正确读出
1.23
到x
里,因为scanf读入double
类型的数据,必须要用%lf
,输出double类型的元素可以用%f
,输入必须是%lf
!
二、只读部分数据的用法&读单个字符易错用法
- 如果要读的字符串
str
为Me {18}
等格式,现在只想把后面的数字读出来,前面的字符串不读。可以用sscanf_s(str, "%*s %*c%d%*c", num,100);
,其中加*
表示不读,则%*s
表示略过字符串不读;%*c
表示略过单个字符{
不读。 - 注意,对于只有单个的字符,如
{
,读取时用字符型%c
,而不能用字符串型%s
。