1.cin>>
1)最常见的是获取输入的一个字符或数字,如
int a,b;
cin>>a>>b;
注意:cin>>会自动过滤掉不可见字符(如空格 回车 tab等)。若不想过滤掉空白字符,可以用noskipws流进行控制。
2)获取输入的字符串,可以用数组或string类型。如
char a[20];
cin>>a;
cout<<a<<endl;
或者string类型:
string s;
cin>>s;
cout<<s<<endl;
注意:遇到空格、回车等会结束获取输入的字符串,后面的字符串会过滤掉(存放在输入流中)。如果后面还需要输入字符串,则会从前面存放的字符串开始获取。
2.cin.get()
1)cin.get(字符变量名),用来接收字符,只获取一个字符,可以接收空格,遇回车结束。
2)cin.get(数组名,接收字符数目),用来接收字符串,可以接收空格,遇回车结束。
注意:数组的最后一个字符会是‘\0’,设接收字符数目为n,如果输入的字符串大于等于n,则实际接收到的输入是字符串的前面n-1个字符,包括空格(不包括回车,遇到回车就结束了),会自动在后面增加一个‘\0’。
3)cin.get(),没有参数,主要用于舍弃输入流中不需要的字符,或者舍弃回车,即舍弃输入流中的一个字符。
没有用cin.get(),则后面的s会从输入流中继续读入
3.cin.getline()
此函数会一次读取多个字符(包括空白字符)。它以指定的地址为存放第一个读取的字符的位置,依次向后存放读取的字符,直到读满N-1个,或者遇到指定的结束符为止。若不指定结束符,则默认结束符为’\n’。其语法为:
cin.getline(字符指针(char*),字符个数N(int),结束符(char));
4.getline()
getline()的原型:
头文件:#include <string>
istream& getline (istream &is, string &str, char delim);
其中, istream &is
表示一个输入流,譬如cin;
string &str
表示把从输入流读入的字符串存放在这个字符串中(可以自己随便命名,str什么的都可以);
char delim
表示遇到这个字符停止读入,在不设置的情况下系统默认该字符为’\n’,也就是回车换行符(遇到回车停止读入)。
5.gets()
gets用来输入一行字符串。可以接收空格,识别换行符\n作为输入结束。
因此,scanf一个整数后,如果要使用gets,需要先用getchar接受整数后的换行符。
6.getchar()
m=getchar(),用来输入和输出单个字符,可以吸收空格和换行符。