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>>不做處理。