scanf("%*s"); 有什么作用

[复制链接]
查看11 | 回复5 | 2018-2-9 14:09:13 | 显示全部楼层 |阅读模式
%*s 带星号的都是跳过输入。 以%s方式读入一个字符串,但是不赋值给任何变量。等效于 你创建一个足够大的字符数组s[1000];然后 scanf("%s",s);之后s的值不使用。 %*s简化了这个过程 提高效率。...
回复

使用道具 举报

千问 | 2018-2-9 14:09:13 | 显示全部楼层
scanf("%*s",str)作用:忽略掉第一次输入的字符串!scanf("%*s",str)中,*在这里为跳过的意思,意为把从键盘输入的字符串忽略掉,不放入变量str中!...
回复

使用道具 举报

千问 | 2018-2-9 14:09:13 | 显示全部楼层
* 是scanf函数中的一种修饰符
表示输入项输入后不转送给任何向量
%s
是格式控制符
%s用在输入函数中表示输入一个字符串遇到空格回车结束 两者一起用
表示将 当前的一个字符串输入后不送给任何变量执行后光标到了这个字符串后面
...
回复

使用道具 举报

千问 | 2018-2-9 14:09:13 | 显示全部楼层
楼主你好如果我没猜错的话 楼主现在正在看C Primer Plus(第五版)吧因为我依稀记得这个代码出自这里 解释:scanf("%*s")首先我们跳到代码:(status = scanf("%d", &code)) != 1 这是判断输入是否正常想必这个楼主应该理解了吧 再看if (status != 1)scanf...
回复

使用道具 举报

千问 | 2018-2-9 14:09:13 | 显示全部楼层
scanf("%*s"); 表示从输入缓冲区读入一个字符串,但不保存该字符串,放在这里是为了清除输入缓冲区中的非法输入,如果输入的字符是非法的,则清除此字符,并输出提示符"Enter an integer from 1 to 5, please"...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行