1

C++ では、先行ゼロを含む整数を入力するとエラーになります。

例:

 int a;
 cin>>a;

入力 00 または 01 を与えます。

または、文字列を使用して入力することをお勧めします。

4

3 に答える 3

4

整数 (または浮動小数点数) には先行ゼロがありません。先頭のゼロを保持したい場合は、代わりに入力を文字列として読み取り、必要に応じて数値に変換する必要があります。または、書式設定を使用して、結果を印刷するときに先行ゼロを追加できます。

于 2012-06-27T05:52:20.083 に答える
3

C++ では、先行ゼロを含む整数を入力するとエラーになります。

入力ストリームのフォーマット フラグの設定によっては、期待どおりにならない場合があります。デフォルトでは、ユーザー入力は常に 10 進数であると想定されます。先行ゼロは無効です。を呼び出してオフにするとどうなる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++ が入力の先行ゼロを解釈して、それに続く数値が 8 進数 (先行 0x の場合は 16 進数) であることを意味するようになったためです。または先頭の 0X)。

于 2012-06-27T07:05:02.533 に答える
0

先行ゼロは削除されます。メモリには保存されません。

于 2012-06-27T06:36:14.613 に答える