为了账号安全,请及时绑定邮箱和手机立即绑定

您好,请问关于(c++,iostream,cin)输入时以"."作为分隔符,如何实现?

您好,请问关于(c++,iostream,cin)输入时以"."作为分隔符,如何实现?

白猪掌柜的 2021-12-09 11:07:01
使用iostream的cin输入一列数据时,如cin>>a>>b>>c;数据之间用空格隔开。如果想要输入时用“,”或“.”作为分隔符,比如输入“5,8,6”,将5,8,6分别赋给a,b,c,如实现?输入时要求三个数据在同一行
查看完整描述

2 回答

?
达令说

TA贡献1821条经验 获得超6个赞


C++的<string>库中有一个getline()函数
用法是
istream& getline(istream& is,string& str,char delimiter='\n')
第一个参数是输入流,
第二个参数是字符串变量,
第三个参数是分隔符,默认分隔符是'\n'。

分隔符只能是半角字符,
如果要用','

那么就是
getline(cin, str_, ',');

完整的程序写出来就是
#include <string>
#include <iostream>
using namespace std;

int main()
{
string s;
getline(cin, s, ',');
//..............
//.............
}
如果输入是:
56,23
那么,s中的内容就是"56"
这样,再把字符串转成数字就不困难了

---------------------------------

那个函数名义上是getline,但实际上可以识别任何指定的分隔符,例如LZ给的逗号、句点之类的符号。
例如
输入是

1,2,3,4,5

那么
getline(cin, str, ',');
过后,str里面的内容就是"1"。
第二次执行getline(cin,str,',');
str里面的内容就是"2"。



查看完整回答
反对 回复 2021-12-12
?
料青山看我应如是

TA贡献1772条经验 获得超7个赞

char mChar;
cin>>a;
cin>>mChar;
if(mChar == ',')
{
cin>>b;
cin>>mChar;
if(mChar == ',')
cin>>c;
else
cout<<"逗号!";
}
else
cout<<"逗号!";
//不输逗号就死定了

没必要这么麻烦,空格就空格吧,干嘛换成","或者"."呢?



查看完整回答
反对 回复 2021-12-12
  • 2 回答
  • 0 关注
  • 313 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信