输入函数
1.cin
1)cin >> a、cin.get、cin.getline均返回一个cin对象,故可以连写cin.get.getline...;
cin在适当的位置可以转换为bool类型,例如while(cin >> key)
2) cin遇分隔符结束,并且自动忽略分隔符(所有分隔符并不丢弃,cin.get可以接收分隔符)
即下面两段程序运行结果相同
char ch,a[10],b[10];
cin >> a >> b;
cout << a << b;
char ch,a[10],b[10];
cin >> a;
getchar();
cin >> b;
cout << a << b;
输入:hello 回车 world 回车
输出:helloworld
2.getline
istream& getline(istream &is, string &str, char delim)
参数:
is:输入流,例如cin
str:从输入流读入的字符串存放的位置(string类型)
delim:结束符,默认为'\n',表示遇到这个字符停止读入
返回值:即输入的参数is(输入流),例如cin
1)getline(cin,str,delim)
getline自动丢弃了结束符
用例子说明:
默认结束符为'\n'的情况下,
string a, b;
getline(cin, a);
getline(cin, b);
cout << a << b;
输入:hello 回车 world 回车
输出:helloworld
string a, b;
getline(cin, a);
getchar();
getline(cin, b);
cout << a << b;
输入:hello 回车 world 回车
输出:helloorld
即第一个结束符'\n'由第一个getline丢弃
结束符为'#'的情况下
string a, b;
getline(cin, a, '#');
getline(cin, b, '#');
cout << a << b;
输入:hello# 回车 world# 回车
输出:hello
world
即a == "hello",b == "\nworld",结束符'#'被丢弃,'\n'被保留在变量b中
string a, b;
getline(cin, a, '#');
getchar();
getline(cin, b, '#');
cout << a << b;
输入:hello# 回车 world# 回车
输出:helloworld
即a == "hello",b == "world",结束符'#'被丢弃
2)cin.getline(char* str, int num, char delim)
参数str为char类型指针,且不能为string类型由c_str()转换而成
num-1为最多读取的字符个数,最终读取的字符个数为 min(num-1, 上一个结束符 到 这一个结束符之间的所有字符个数 且不包括结束符本身),存储时在字符数组末尾自动加'\0'
用例子说明:
默认结束符为'\n'的情况下,
char a[10],b[10];
cin.getline(a, 10);
cin.getline(b, 10);
cout << a << b;
输入:hello 回车 world 回车
输出:helloworld
char a[10],b[10];
cin.getline(a, 10);
getchar();
cin.getline(b, 10);
cout << a << b;
输入:hello 回车 world 回车
输出:helloorld
即第一个结束符'\n'由第一个getline丢弃
结束符为'#'的情况下
char a[10],b[10];
cin.getline(a, 10, '#');
cin.getline(b, 10, '#');
cout << a << b;
输入:hello# 回车 world# 回车
输出:hello
world
即a == "hello",b == "\nworld",结束符'#'被丢弃,'\n'被保留在变量b中
char a[10],b[10];
cin.getline(a, 10, '#');
getchar();
cin.getline(b, 10, '#');
cout << a << b;
输入:hello# 回车 world# 回车
输出:helloworld
即a == "hello",b == "world",结束符'#'被丢弃
3.get
1)不带参数的形式
int cin.get(void)
返回值:以无符号char强制转换为int的形式返回读取的字符,如果到达文件末尾或发生读错误,则返回EOF。
2)带一个参数的形式
istream& cin.get(char c)
返回值:输入流对象cin,在适当的时候转换为bool类型,例如while(cin >> c)
3)带2或3个参数的形式
istream& cin.get(char *str, int num)
istream& cin.get(char* str, int num, char delim)
用法同istream& cin.getline(char* str, int num, char delim)
输出函数
1.cout
推荐:C++中cout的使用_c++ cout用法-CSDN博客
3.put
osrteam& put (char ch)
返回值:输出流对象,例如cout
char ch = 'a';
cout.put(ch);