1 scanf能接收空格字符
#include<iostream>
#include<string>
#include<stdio.h>
#include<algorithm>
using namespace std;
int main(void)
{
char s;
// while(cin>>s)
// {
// cout<<s;
// }
// cout<<endl;
while(scanf("%c",&s)!=EOF){
printf("%c",s);
}
return 0;
}
运行结果:
2,cin输入空格后的输出
#include<iostream>
#include<string>
#include<stdio.h>
#include<algorithm>
using namespace std;
int main(void)
{
char s;
while(cin>>s)
{
cout<<s;
}
cout<<endl;
// while(scanf("%c",&s)!=EOF){
//
// printf("%c",s);
// }
return 0;
}
运行结果:
3 小结
**从运行结果来看cin并未将空格字符压入到字符变量s中**。
原因参考连接:https://blog.csdn.net/bravedence/article/details/77282039
当cin>>从缓冲区中读取数据时,若缓冲区中第一个字符是空格、tab或换行这些分隔符时,cin>>会将其忽略并清除,继续读取下一个字符,若缓冲区为空,则继续等待。但是如果读取成功,字符后面的分隔符是残留在缓冲区的,cin>>不做处理。