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作为一行字符串输入操作结束, 或者遇到设定的字符也可作为字符流读取结束:(这里设定的字符是?)