由于C++中这一个知识点的欠缺,导致自己在某场程序测式中没有通过,现在决定把能找到的读入包含空格的方法总结出来。
一、gets()
首先是标准输入输出中的gets()方法,以回车键结束。(补充:在C++11中已删除)
#include<iostream>
#inlcude<cstdio>
using namespace std;
int main()
{
char str[50];
gets(str);
puts(str);
return 0;
}
二、scanf
利用格式符"%[]",它的作用为扫描字符集合,加^标识这输入这后面字符即是结束符。
若无,则表示输入的是这[]内的,遇到非[]内的字符则结束。
scanf("%[^\n]",str);
scanf("%[a-z A-Z 0-9]",str);
三、getline()
包含头文件#include<string>,当定义为string型而不是char型时,使用getline()函数。
#include<iostream>
#include<string>
using namespace std;
int main()
{
string str;
getline(cin,str);
cout<<str<<endl;
return 0;
}
四、cin.get(char *str,int maxnum)
cin.get可接收空格,遇到回车结束
#include<iostream>
using namespace std;
int main()
{
char st[50];
cin.get(st,50);
cout<<st<<endl;
return 0;
}
五、cin.getline(char *str,int maxnum)
包含头文件#include<string>,与cin.get()类似。
#include<iostream>
#include<string>
using namespace std;
int main()
{
char st[50];
cin.getline(st,50);
cout<<st<<endl;
return 0;
}