#include <iostream>
#include <cstdio>
using namespace std;
int main(){
int flag;
char ch;
scanf("%d",&flag);
ch = getchar();
cout<<ch<<endl;
return 0;
}
scanf不带 空格 或‘ \n' 的输出结果如下。
可以看出1的输入后有三个空行。其中第1个空行来源于输入时的回车,剩余的2个空行中,前一个来源于变量ch通过getchar()读入的回车,最后一个来源于endl。
%d后带空格时
#include <cstdio>
using namespace std;
int main(){
int flag;
char ch;
scanf("%d ",&flag);
ch = getchar();
cout<<ch<<endl;
return 0;
}
空格帮助我们跳过了回车符(实际上也可以跳过制表符Tab和普通空格),可以读入所需的数据。
%d后带\n时
#include <cstdio>
using namespace std;
int main(){
int flag;
char ch;
scanf("%d\n",&flag);
ch = getchar();
cout<<ch<<endl;
return 0;
}
输入整型数据1后又多打了几个空格和Tab,再进行回车,即识别到回车符后结束。