我编写了一个用于对人名进行排序的程序,我要求用户给出他想要的人数,我使用下面给定的行存储它并且它工作正常,但是,我不明白的确切工作原理它。有谁能解释清楚吗?
scanf("%d%*c",&n);
Run Code Online (Sandbox Code Playgroud)
%*c用于忽略换行符空格或任何其他特殊字符。因此,在scanf()输入整数后,假设缓冲区中有一个换行符,它将被 this 吞噬%*c。
如果你不这样做并且在这个 scanf() 之后如果你说
scanf("%c",&c); /* where c is a char */
Run Code Online (Sandbox Code Playgroud)
然后你会想 scanf() 永远不会等待你输入一个字符,而是选择一个换行符。