1.不带空格的字符串,直接cin即可

string s;
cin >> s;

2.带空格的字符串,需要使用getline

string s;
getline(cin,s);

3.按行输入,其中第一行是第二行输入的总数

/*输入
    5
    1 2 3 4 5
*/
int nums;
cin>>nums;
vector<int> v;
int tmp;
for(int i=0;i<nums;++i){
    cin>>tmp;
    v.push_back(tmp);
}

for(int i=0;i<nums;++i){
    cout<<v[i]<<endl;
}

或者是

/*输入
    5
    1 2 3 4 5
*/
int nums;
cin>>nums;
vector<int> v(nums);
for(int i=0;i<nums;++i){
    cin>>v[i];
}
for(int i=0;i<nums;++i){
    cout<<v[i]<<endl;
}
4.第一行读入一个整数n,接下来n行,每行两个数值
/*输入
    2
    1 2
    3 4
输出:
    12
    34
*/
int n;
cin>>n;
vector<int> v1(n);
vector<int> v2(n);

for(int i=0;i<n;++i){
    cin>>v1[i]>>v2[i];
}
for(int i=0;i<n;++i){
    cout<<v1[i]<<v2[i]<<endl;
}

5. cin.geline()

#include <iostream>
using namespace std;
main ()
{
char m[20];
cin.getline(m,5);
cout<<m<<endl;
}
//输入:jkljkljkl
//输出:jklj

//接收5个字符到m中,其中最后一个为'\0',所以只看到4个字符输出;

//如果把5改成20:
//输入:jkljkljkl
//输出:jkljkljkl

//输入:jklf fjlsjf fjsdklf
//输出:jklf fjlsjf fjsdklf

6.输出需要保留小数位数时

#include<iomanip>


//在setprecision()后边的为需要保留的变量,参数为几位
cout<<setprecision(3)<<ans<<endl;

7. 输入输出解除绑定避免超时

//在main函数开头添加

ios::sync_with_stdio(false),cin.tie(NULL);

 8. 注意,在联合使用getline和cin时,要注意cin不会清空读取缓冲区,导致getline会无法读取最后一行。可以用以下方式进行消除(cin.ingnore(int,'\n')或者cin.sync()均可)

int main(){
    int n;
    cin>>n;
    vector<string> nums(n);
  //cin.sync(); cin.ignore(
10,'\n'); for(int i=0;i<n;++i){ getline(cin, nums[i]); } for(int i=0;i<n;++i){ cout<<nums[i]<<endl; } return 0; }