scanf("%*c%*[^\n]"); 想问一下上面的*和c有什么作用?是什么意思?
答案:2 悬赏:0 手机版
解决时间 2021-02-05 04:51
- 提问者网友:暮烟疏雨之际
- 2021-02-04 13:54
scanf("%*c%*[^\n]"); 想问一下上面的*和c有什么作用?是什么意思?
最佳答案
- 五星知识达人网友:愁杀梦里人
- 2021-02-04 15:13
scanf("%*c%*[^\n]");
这条语句中%*c表示, 读入一个字符,但是这个字符不保存到变量里,所以后面不需要有对应的char型的参数。%*[^\n]表示读入一个字符串,字符串里的字符只能是由[]里指定的字符,并且这个字符串也不保存。假如是%*[abcd], 只能输入abcd所组成的字符串,如aabbddcc,如果遇到其他字符,scanf函数就会返回。
这里是%*[^\n], ^表示“非”的意思, \n是换行, %*[^\n]表示读入所有不是换行的字符。
所以 scanf("%*c%*[^\n]");表示,读入一个字符,再读入一串不是换行的字符,这些都不保存,然后返回。
其实就是,跳过一行的意思。
网上找的,还真没想到正则表达式在scanf也可以用
这条语句中%*c表示, 读入一个字符,但是这个字符不保存到变量里,所以后面不需要有对应的char型的参数。%*[^\n]表示读入一个字符串,字符串里的字符只能是由[]里指定的字符,并且这个字符串也不保存。假如是%*[abcd], 只能输入abcd所组成的字符串,如aabbddcc,如果遇到其他字符,scanf函数就会返回。
这里是%*[^\n], ^表示“非”的意思, \n是换行, %*[^\n]表示读入所有不是换行的字符。
所以 scanf("%*c%*[^\n]");表示,读入一个字符,再读入一串不是换行的字符,这些都不保存,然后返回。
其实就是,跳过一行的意思。
网上找的,还真没想到正则表达式在scanf也可以用
全部回答
- 1楼网友:时间的尘埃
- 2021-02-04 15:24
%*代表读入一个字符值而不把它赋给任何变量
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯