C++ 常用输入/输出函数&对于分隔符的处理(Tab/空格/回车)

输入函数

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);

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MallocLu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值