一般用gets(),就能实现读带空格的,但有时候,不知道为啥,用gets会莫名出错。//千万不要用gets()!!!

这里来说说cin.get();(c++的题居然考的这);如;读取

Tom Hanks&18&7817&80&80&90&70
#include<bits/stdc++.h>
using namespace std;
int main(){
    char a[30];
    cin.get(a,20,'&');
	//这里我规定最多读取20个,或者读到'&'结束。
	//这20个里面最后是个'\n',所以说只能看见19个。
	cout<<endl;
	//方便观察,输入输出之间空一行。
    cout<<a<<endl;
	return 0;
}

这里的20,是限制读取的字符串的总长度;下面输入了21个字符(加上回车).

只有字符达到20以上,直接截取20个,或者遇见‘&’,用来截取。(‘&’之前的回车也会被读入)