为方便叙述,将
scanf("\n%*c%d",&m)
分成
scanf("\n") 、scanf("%*c")、scanf("%d",&m)
scanf("\n“)
对应的是输入流中0或多个连续空白字符(\n \t SPACE)
可能读也可能不读
getchar()
则是必定读一个字符且无论是什么字符
scanf("%*c")
是读一个字符但不存储
scanf("%*1d")
则是读一个“十进制数字字符”但不存储
#include <cstdio>
int main()
{
char str[1000];
scanf("%[^\n]%*c",str);// %*c的作用也是读入\n,否则后面读入的将一直是\n。
// or fgets(str, 100, stdin); 第一个是名字 第二个是需要读入的长度 第三个是固定的
printf("%s", str);
}
本文转自 「PrConstantin」 的原创文章