cin
cin 输入接触到第一个非空格字符时开始阅读,
当遇到下一个空格字符(空格、制表符、换行符)时就会停止读取,
#include<iostream>
using namespace std;
int main() {
string s;
printf("输入:\n");
cin >> s;
printf("输出;\n");
cout << s;
}
cin 输入接触到第一个非空格字符时开始阅读:
当遇到下一个空格字符(空格、制表符、换行符)时就会停止读取:
为了避免cin对于空白符的忽略问题,可以用getline函数:
getline函数
getline函数可以读取整行,包括前面和中间的空格,并将其存储在字符串对象中。
在头文件#include<string>中,是普通函数,有四种重载形式。
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<iostream>
#include<string>
using namespace std;
int main() {
string s;
printf("输入:\n");
getline(cin, s);
printf("输出;\n");
cout << s;
}
在输入时,直至遇到‘\n’或EOF, 才终止一行字符串输入操作:
#include<iostream>
#include<string>
using namespace std;
int main() {
string s;
printf("输入:\n");
getline(cin, s,'?');
printf("输出;\n");
cout << s;
}
以输入遇到回车换行符'\n'或EOF作为一行字符串输入操作结束, 或者遇到设定的字符也可作为字符流读取结束:(这里设定的字符是?)