cin 输入接触到第一个非空格字符时开始阅读,
当遇到下一个空格字符(空格、制表符、换行符)时就会停止读取,
- #include
- using namespace std;
-
- int main() {
- string s;
- printf("输入:\n");
- cin >> s;
- printf("输出;\n");
- cout << s;
- }
cin 输入接触到第一个非空格字符时开始阅读:

当遇到下一个空格字符(空格、制表符、换行符)时就会停止读取:

为了避免cin对于空白符的忽略问题,可以用getline函数:
getline函数可以读取整行,包括前面和中间的空格,并将其存储在字符串对象中。
在头文件#include
- istream& getline(istream& is, string& str, char delim);
-
- istream& getline(istream&& is, string& str, char delim);
-
- istream& getline(istream& is, string& str);
-
- istream& getline(istream&& is, string& str);
读取的istream是作为参数 is 传进函数的,读取的字符串保存在string类型的str中。
is : 表示一个输入流,例如cin。
str : 为string类型的引用,用来存储输入流中的流信息。
delim :为char类型的变量,截断字符。不定义的情况下,默认遇到 ‘\n'代表一行的输入结束。
- #include
- #include
- using namespace std;
-
- int main() {
- string s;
- printf("输入:\n");
- getline(cin, s);
-
- printf("输出;\n");
- cout << s;
- }
在输入时,直至遇到‘\n’或EOF, 才终止一行字符串输入操作:

- #include
- #include
- using namespace std;
-
- int main() {
- string s;
- printf("输入:\n");
- getline(cin, s,'?');
-
- printf("输出;\n");
- cout << s;
- }
以输入遇到回车换行符'\n'或EOF作为一行字符串输入操作结束, 或者遇到设定的字符也可作为字符流读取结束:(这里设定的字符是?)
