是否可以将0存储为整数变量中的第一个数字

时间:2014-12-25 09:02:24

标签: c++

我想将097的值赋给整数变量。我不希望它被隐式转换为97。这可能吗?

int i=097;
cout<<i;

OUTPUT097Possible?

我需要以相反的顺序将值放在链接列表中。因此,如果用户输入097,我需要以数字方式解析它并将其存储在链接列表中7->9->0。它不是确切的程序,而是我试图实现的东西。可以有其他方式,如使用数组和所有。但我只是想知道我是否可以使用0变量来解析int

4 个答案:

答案 0 :(得分:7)

不,这是不可能的。

整数以二进制形式存储,而不是以个别数字存储。因此,不存储与整数值无关的所有信息。

也许您希望将值存储在字符串中?

答案 1 :(得分:7)

int的值为97097是没有意义的。你想要的是一种格式化输出的方法。要做到这一点,可以std::setwidth and std::setfill

cout << setwidth(3) << setfill('0') << i;

答案 2 :(得分:6)

不是整数变量。要实现这一点,您可以使用字符串或其他方法来跟踪数字应该有多少前导零。

顺便说一句,C ++整数文字中的前导零将其转换为octal字面值。这会使您的程序出错,因为它试图在八进制文字中使用非八进制数字9

答案 3 :(得分:0)

正如其他人所建议的那样,尝试使用字符串来显示值。使用to_string函数将整数转换为字符串,并在开头插入前导零。

int i = 97;
std::string s = std::to_string(i);
s.insert(0,"0");

编辑:然后您可以通过迭代字符串将数字存储到列表中。