包含前导零的输入

时间:2012-06-27 05:48:07

标签: c++

在c ++中,如果我们输入一个包含前导zereos的整数,它们将是任何错误。

例如:

 int a;
 cin>>a;

我们输入00或01。

或者在字符串的帮助下输入这个是一个更好的主意。

3 个答案:

答案 0 :(得分:4)

整数(或浮点数)没有前导零。如果要保留前导零,则必须将输入作为字符串读取,并在需要时将其转换为数字。或者,您可以在打印结果时使用格式设置添加前导零。

答案 1 :(得分:3)

  

在c ++中,如果我们输入一个包含前导zereos的整数,它们将是任何错误。

根据输入流的格式标志的设置,您可能无法获得预期效果。默认情况下,期望用户输入始终为十进制。前导零没有效果。如果我们通过致电std::cin.unsetf()来解决这个问题怎么办?

int main () {
  int i;
  std::cin.unsetf (std::ios::dec);
  while (std::cin >> ii) {
    std::cout << i << "\n";
  }
}

如果输入25,输出将为25,但如果输入025,则输出为21.这是因为C ++现在解释输入的前导零,表示后面的数字是八进制(或者是十六进制的情况)前导0x或前导0X)。

答案 2 :(得分:0)

领先的零将被削减。它不会存储在内存中。