我想一个一个地得到一串数字,所以我使用一个while
循环cin.get()
作为函数来一个一个地获取我的数字。
但是cin.get()
将数字设为char
s,即使我尝试使用强制转换,我也无法让我的变量包含数值,而不是作为输入的数字的 ascii 值。
cin.get
无法解析数字。您可以手动完成 - 但是既然它已经存在,为什么还要重新实现这个功能呢?*
int number;
std::cin >> number;
通常,流运算符 ( <<
and >>
) 负责格式化输出和输入,istream::get
另一方面仅提取原始字符。
*当然,如果你必须重新实现这个功能,那也没用。
要从数字字符中获取数值,您可以利用十进制数字 0-9 的字符代码是连续的。所以下面的函数可以隐藏它们:
int parse_digit(char digit) {
return digit - '0';
}