牛客网笔试题输入输出问题:
笔试教训
cin>> temp;
cin>>将输入的数据存放到temp里面,并且进行好了类型转换,也就是说如果temp是int,那么输入的数据就会转化成int,如果是strin类型,那么就将输入的数据转换成string类型然后存入到temp里面,cin>>输入的数据不包含空格和回车,空格和回车会存入到cin的缓冲区中,如果想拿到输入的空格和回车,通过cin.get()获得。
#include<stdio.h>
#include<iostream>
#include<vector>
#include<queue>
#include<string.h>
#include<math.h>
#include<unordered_map>
#include<algorithm>
#include<deque>
#include<set>
#include<stack>
using namespace std;
int main()
{
// getline()输入连续的一串字符串,要求输出的字符串包含空格,遇到回车结束
string ss;
getline(cin, ss);
cout<<ss;
// 输入不定量的整数,以空格隔开,回车结束
vector<int> a;
int temp;
cin>>temp;
a.push_back(temp);
while(cin.get() != '\n') {
cin>>temp;
a.push_back(temp);
}
for(int i=0; i<a.size(); i++)
cout<<a[i]<<endl;
// 输入不定量个数的多个字符串,每个字符串空格隔开,回车结束
vector<string> s;
string tmp;
cin>>tmp;
s.push_back(tmp);
while(cin.get() != '\n') {
cin>>tmp;
s.push_back(tmp);
}
for(int i=0; i<s.size(); i++)
cout<<s[i]<<endl;
return 0;
}
//对于string类型的输入,包括空格也输入到string里面
getline(cin, string);
//对于char类型的数据,包含空格也输入到char里面,回车符不会保留在输入在序列里
char temp[10];
cin.get(temp, 9);//第二个参数是要保留的输入字符的数量+1,9的话就是只能保留8个字符
//跟cin.get()用法一样,只是回车符不会保留在输入序列里
cin.getline(temp, 9);