C++输入方法总结
- cin
cin是一个对象(输入流),cin>>x表示将输入流缓冲区中的内容放到变量x中,若遇到空格就忽略。>>是一个运算符,左操作数是cin对象,右操作数是变量,cin>>x返回一个cin对象。
cin在输入字符串时,不能有空格。当输入带空格的字符串时,在按下回车后,cin读取空格前的字符串,并写到变量中,并一直读取cin流中的内容,直到流中为空结束读入。因此:
#include<iostream>
using namespace std;
int main(){
string s;
while(cin>>s){
cout<<s<<endl;
}
return 0;
}
上述代码段在接收到“What is your name ?”字符串并按下回车后,cin先读取What,放到s中并输出;然后返回while的判断条件,这时流中还有字符,于是又读入is放到s中并输出;直到流中没有字符,结束while循环。以上输入的输出为:
输入Ctrl+C时while(cin>>x)退出循环。
- cin.get()
有多种重载形式,如:char a; a=cin.get();
输入一个字符char a;cin.get(a);
返回值是cin对象,作用也是输入一个字符char a[23];cin.get(a,23);
返回值是cin对象,作用是输入一行字符,以换行符结束一行输入
- cin.getline()
char a[23];cin.getline(a,23);
返回值是cin对象,输入一行字符
其中get()和getline()的区别是:
get在读取到回车后不丢弃回车符而是将其存放在输入队列中。 - scanf
int s; scanf("%d",&s);
返回值是接收到的正确输入个数。例如上面的例子中返回1. 若没有则返回-1(即传说中的EOF)