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