![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
c++重载运算符>>时的问题 50
我定义了一个Array类,在重载>>时遇到了问题。代码如下,实现的是一次性输入多个数值,数值以空格隔开。当我设置T为<int>时,cin一个int型数值时,比如1,get...
我定义了一个Array类,在重载>>时遇到了问题。
代码如下,实现的是一次性输入多个数值,数值以空格隔开。
当我设置T为<int>时,cin一个int型数值时,比如1,get到的是49。
查了cin.get()才知道是get字符的,那我应该怎么修改才能实现这个功能呢?
friend istream& operator>>(istream & is, Array & t)
{
T tmp;
tmp=cin.get();
while (tmp != '\n')
{
if (tmp != ' ' && tmp != '\t')
t.append(tmp);
tmp=cin.get();
}
return is;
} 展开
代码如下,实现的是一次性输入多个数值,数值以空格隔开。
当我设置T为<int>时,cin一个int型数值时,比如1,get到的是49。
查了cin.get()才知道是get字符的,那我应该怎么修改才能实现这个功能呢?
friend istream& operator>>(istream & is, Array & t)
{
T tmp;
tmp=cin.get();
while (tmp != '\n')
{
if (tmp != ' ' && tmp != '\t')
t.append(tmp);
tmp=cin.get();
}
return is;
} 展开
2个回答
展开全部
cin>>tmp
输入输出运算符一般是教科书一开始就介绍的吧……
唔如果要判断接下来的字符是空格还是回车就稍微有点麻烦了——如果T类型的输入运算符可以接受回车怎么办,例如对于复数而言,
(
3
+4i
)
可能是合法的表示方式(表示3+4i这个复数),总不能复数类的输入操作符读到 ( 就停止读入吧
输入输出运算符一般是教科书一开始就介绍的吧……
唔如果要判断接下来的字符是空格还是回车就稍微有点麻烦了——如果T类型的输入运算符可以接受回车怎么办,例如对于复数而言,
(
3
+4i
)
可能是合法的表示方式(表示3+4i这个复数),总不能复数类的输入操作符读到 ( 就停止读入吧
追问
那怎么判断何时结束呢。。我想输入换行时结束
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询