为什么第一次循环正常运行,但之后运行(从第二段开始)就不正常了呢?遇到scanf不应该等待从键盘输入信息吗?怎么直接跳过了?
scanf("%[^\n]", buff);
getchar(); // 清除输入缓冲区中的换行符
如果在输入中有scanf中出现的非控制字符(可以自行设置格式字符串),则这些字符会被跳过。
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
int n,m; char c; float f;
scanf("%d %c,%f:%d",&n,&c,&f,&m); //输入中对应位置的 空格 , :会被跳过
printf("%d,%c,%f,%d",n,c,f,m);
return 0;
}