实现代码
int row, col;
scanf("%d %d", &col, &row);
scanf("%*c");
char input[100];
scanf("%[^\n]", input);
scanf("%*c");
解释
scanf("%*[^\n]"); scanf("%*c");
第一个 scanf() 将逐个读取缓冲区中 \n 之前的其它字符,% 后面的 * 表示将读取的这些字符丢弃,遇到 \n 字符时便停止读取。此时,缓冲区中尚有一个 \n 遗留
第二个 scanf() 再将这个 \n 读取并丢弃,这里的星号和第一个 scanf() 的星号作用相同。由于所有从键盘的输入都是以回车结束的,而回车会产生一个 \n 字符,所以将 \n 连同它之前的字符全部读取并丢弃之后,也就相当于清除了输入缓冲区。
版权声明:本文为m0_50939789原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。