使用cin.get获取整数

时间:2012-11-16 17:59:36

标签: c++ casting

我想逐个获取一串数字,所以我正在使用while循环 使用cin.get()作为逐个获取我的数字的函数。

cin.get()得到的数字为char s,即使我正在尝试使用 我无法让我的变量包含numrical值而不是ascii值 我得到的数字作为输入。

1 个答案:

答案 0 :(得分:26)

cin.get无法解析数字。你可以手动完成 - 但为什么还要重新实现这个功能,因为它已经存在了? *

int number;
std::cin >> number;

通常,流操作符(<<>>)负责格式化输出和输入,istream::get另一方面仅提取原始字符


* 当然,如果 重新实现此功能,那么它就没有了。

要从数字字符中获取数值,可以利用十进制数字0-9的字符代码是连续的。所以以下函数可以转换它们:

int parse_digit(char digit) {
    return digit - '0';
}