C编程新手,请随时纠正我。
int main() { char sent[]="mugiwara is 18 years old"; char str[20]; int i; sscanf(sent,"%s%*s%d",str,&i); printf("\n%s->%d",str,i); return 0; }
在上面的c程序%*s
中,sscanf
语句在做什么?我尝试删除它,然后在尝试运行该程序时出现垃圾值,请解释。
%*s
in sscanf
将从流中读取数据,然后将其丢弃。它不会将读取的数据存储到任何变量中,因此,不需要在中传递该分隔符的任何参数sscanf
。
以供参考 - sscanf
(可选)禁止分配字符*。如果存在此选项,则该函数不会将转换结果分配给任何接收参数。