“%*c”也是控制符,意思是跳过一个字符。例如在两行或循环中使用scanf("%1[1234]d%*c", &choice);,输入12341234,第一行接收1,第二行接收3,跳过了2(实质上接收但不赋值给变量)。其中的“d”位于两个控制符之间,按照scanf格式化控制符规则,中间的字符在输入时输入该字符。然而,“d”后...
只接收1、2、3、4四种字符,每次只接收一个,然后跳过一个字符。比如当输入12345678,则choice只接收1。如果开头不是1、2、3、4,则什么都不接收。至于这么做想达到什么逻辑目的,没有代码说不上来。
加@的意思是告诉系统,@后面的字符串当作正常的字符串解析就好,不用进行转义。如果不加,里面有些字符必须转义后才能正确识别。例如 string a=@"您“好"吗?";这个字符串就不用转义"就可以被系统正确识别!