scanf("%*c%*[^\n]"); 想问一下上面的*和c有什么作用?是什么意思?
展开全部
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也可以用
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询