前言
总计一下各种输入方式以及合适的使用场景优缺点什么的...
流提取运算符
在iostream.h
中
使用
cout <<
使用事项
- 通常跳过输入流中的空白字符,如空格、制表符和换行符
- 流提前运算符给接受的流对象返回一个引用。如果引用被用做判断条件,那么根据最后输入操作成功与否将引用转化为true或false
get成员函数
在iostream.h
中
没有形参
使用
int cin::get(); //使用int是因为char类型不能接受EOF
使用事项
- 从指定流输入一个字符,包括空白字符及其他非图形字符,并将这个值作为函数调用的返回值
- 在遇到流中的文件尾时返回EOF值
一个形参
使用
istream& cin::get(char &c);
使用事项
- 将输入流中的下一个字符(即使是一个空白字符)输入并存储在其引用的字符参数内
- 给调用它的istream对象返回一个引用
- 可以拼接起来就像提取符那样
三(两个)个形参
使用
void cin::get(char c[], int len, char delim);
使用事项
- 从输入流中读取多个字符,或者不超过size个,或者遇到分割符(可省,如果省略就是默认分割符‘\n‘)终止
- 这里的len应该小于第一参数字符数组的size
- 若遇到分割符中止,分割符不会被读取到数组中,而是会被放置到流中,这会对下一次调用产生影响,需要使用不带形参的将分割符取出才不会影响下一次的读取
getline成员函数
使用
istream& cin::getline(char c[], int len, char delim);
使用事项
- 从输入流中读取多个字符,或者不超过size个,或者遇到分割符(可省,如果省略就是默认分割符‘\n‘)终止
- 读取之后会在末尾插入一个空字符,并把分割符从输入流中移除(读取然后丢弃)
- 这里的len应该小于第一参数字符数组的size,且要留一个位置来防止空字符‘\0‘
getline非成员函数
在string.h
中
使用
istream& getline(istream& is, char c[], char delim);
istream& getline(istream& is, string str, char delim);
使用事项
- 从输入流is中读取多个字符遇到分割符(可省,如果省略就是默认分割符‘\n‘)终止
2.与成员函数比,优势在可以用string接收
输入流一二事
原文:https://www.cnblogs.com/Za-Ya-Hoo/p/12682588.html