我想将097
的值赋给整数变量。我不希望它被隐式转换为97
。这可能吗?
int i=097;
cout<<i;
OUTPUT
为097
:Possible?
我需要以相反的顺序将值放在链接列表中。因此,如果用户输入097
,我需要以数字方式解析它并将其存储在链接列表中7->9->0
。它不是确切的程序,而是我试图实现的东西。可以有其他方式,如使用数组和所有。但我只是想知道我是否可以使用0
变量来解析int
。
答案 0 :(得分:7)
不,这是不可能的。
整数以二进制形式存储,而不是以个别数字存储。因此,不存储与整数值无关的所有信息。
也许您希望将值存储在字符串中?
答案 1 :(得分:7)
说int
的值为97
或097
是没有意义的。你想要的是一种格式化输出的方法。要做到这一点,可以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");
编辑:然后您可以通过迭代字符串将数字存储到列表中。