2017-10-24 7 views
-1

たとえば、どのように印刷できますか?最初の数字が0の印刷番号

int a = 0145236 

私はそれを使用したいときは、常に私に8進数を与えます。

+1

「Int」とは何ですか?どのように印刷しますか? Cの '0145236'は10進数の' 51870'を表す8進整数定数であることを認識していますか? – AnT

+0

私はそれを変更する方法はないと思いますが、それはCの構文の一部です。ソースコードに先頭のゼロを入れないでください。 – Barmar

+0

それを文字列に変換し、文字列のbeginigに '0'を追加して、それを印刷することができます –

答えて

0

まず、これはCではありません。typedefを使用しない限り、Cの整数型は、大文字と小文字が区別されます。intです。

octal-constant: 
    0 
    octal-constant octal-digit 

octal-digit: one of 
    0 1 2 3 4 5 6 7 

あなたは0<octal-digit>でレクサーを開始する初期化子の定数を記述するときに、それをいくつかの整数型を与えるだろうし、それが初期化されます:、それは定数のためのBNF記法を書かれているISO 9899 6.4.4.1 Integer constants -- Syntax

それはベース8にあります。

+1

なぜそれはCのように見えないのですか? – Barmar

+0

'Int'ではなく' int' – alinsoar

+0

これはtypedefかコピーエラーです。 – Barmar

0

数字の前にゼロを置くと、それは8進数でのみ表示されます。それがcの仕組みです。 しかし、ユーザーからの入力を受け取り、と入力したとすると、変数には123456という名前が格納されているため、ハードコーディング時には整数の先頭に0を追加しないでください。 番号に先行ゼロを追加する必要がある場合は、これが役に立ちますPrinting leading 0's in C?

関連する問題