这个有点具体。我希望能够使用函数而不是cin从用户检索整数。 我尝试了几种不同的东西,但似乎都没有用,所以我最后编写了自己的功能。它确实令我感到困惑,因为它似乎已经存在功能。这是:
int getInt()
{
int num;
cin >> num;
return num;
}
我尝试过使用cin.get(),但是返回整数的ascii数。 getline()函数全部用于字符串。这个功能不存在是没有意义的!如果您知道可以作为参数传递给函数的任何函数或内联等效函数,请告诉我。
答案 0 :(得分:2)
没有标准功能可以做你想要的。
答案 1 :(得分:2)
当您执行发布的操作时,您已经在使用某个功能。调用operator>>
的替代语法使其更清晰:
int num;
cin.operator>>(num);
return num;
以下是Visual C ++ v10标题中该函数的代码:
_Myt& __CLR_OR_THIS_CALL operator>>(int& _Val)
{ // extract an int
ios_base::iostate _State = ios_base::goodbit;
const sentry _Ok(*this);
if (_Ok)
{ // state okay, use facet to extract
long _Tmp = 0;
const _Nget& _Nget_fac = _USE(ios_base::getloc(), _Nget);
_TRY_IO_BEGIN
_Nget_fac.get(_Iter(_Myios::rdbuf()), _Iter(0),
*this, _State, _Tmp);
_CATCH_IO_END
if (_State & ios_base::failbit
|| _Tmp < INT_MIN || INT_MAX < _Tmp)
_State |= ios_base::failbit;
else
_Val = _Tmp;
}
_Myios::setstate(_State);
return (*this);
}
答案 2 :(得分:0)
C ++使用运算符(在本例中为&gt;&gt;)来获取输入,而不像使用函数的Java。您可以构建自己的数字解析器,但没有一个内置标准C ++。