cのフォーマット指定子は何ですか?


ベストアンサー

Cには多くのフォーマット指定子があります。明らかにタイプごとに1つ存在しますが、それを超えると、プログラマーが特定のタイプの変数をいくつかの異なる表現で表示できるようになります。たとえば、%d は整数を出力します。ただし、%xを使用して、同じ整数を16進数で表示することもできます。それでも、元のすべてのC形式指定子のリストは次の場所にあります: Cプログラミングのすべてのフォーマット指定子のリスト-Codeforwin

ただし、Cコードの記述にはより現代的なアプローチを取ることをお勧めします。変数を宣言し、適切に表示します。つまり、 および によって提供される定義を使用します。 これらのヘッダーを含めることで、次のように変数を宣言できるようになりました。

出典: Cの方法(2016年現在)

  • int8\_tint16\_tint32\_tint64\_t-符号付き整数
  • uint8\_tuint16\_tuint32\_tuint64\_t-符号なし整数
  • float-標準の32ビット浮動小数点ポイント
  • double-標準の64ビット浮動小数点
  • intptr\_t, uintptr\_t, ptrdiff\_t

最後の箇条書きには、ポインタ演算に使用できる型が含まれています。

このような型が与えられた場合、それらを表示する適切な方法は次のとおりです。

  • size\_t\%zu
  • ssize\_t\%zd
  • ptrdiff\_t\%td
  • 生のポインターr値-\%p(最新のコンパイラでは16進数を出力します。ポインタを最初に(void *)にキャストします)
  • int64\_t"\%" PRId64
  • uint64\_t"\%" PRIu64 64ビットタイプはPRI[udixXo]64スタイルマクロ。どうして?一部のプラットフォームでは、64ビット値はlongであり、その他のプラットフォームでは “sa long longです。これらのマクロは、全体にわたって適切な基本フォーマット仕様を提供します。プラットフォーム。これらのフォーマットマクロなしで正しいクロスプラットフォームフォーマット文字列を指定することは実際には不可能です。タイプがあなたの下から変わるためです(そして、印刷前に値をキャストすることは安全または論理的ではないことを忘れないでください)。
  • intptr\_t"\%" PRIdPTR
  • uintptr\_t"\%" PRIuPTR
  • intmax\_t"\%" PRIdMAX
  • uintmax\_t"\%" PRIuMAX

次のいずれかのタイプの印刷例:

printf("Local number: \%" PRIdPTR "\n\n", someIntPtr);

PRIdPTR は引用符の外にありますが、パーセント記号の直後にあることに注意してください。構文的にやや面倒です。確かに。

とにかく、これがあなたが失っていたもののほとんどに答えることを願っていますの王。データ型に関してより現代的な方法でCを使用し、特別な形式の指定子を介してそれらを表示することについて提供された情報は、 How to C(2016年現在)

また、フォーマット指定子や、マニュアルページに関連するprintf()のすべてを検索できることを忘れないでください。 UNIXまたはUNIXのようなシステムを使用している場合は、シェルを開いて

bash$ man printf

また、googleはあなたの友達です…; -)

回答

フォーマット指定子はパーセンテージで始まります 演算子と、それに続くデータのタイプを識別するための特殊文字。

ほとんどの場合、 6種類のフォーマット指定子があります

Cのフォーマット指定子のリスト

整数形式指定子%d

%d 形式指定子は、整数値を表すために実装されています。これは、変数に格納されている整数値を出力するためにprintf()関数で使用されます。

構文:

printf("\%d",);

フロート形式指定子%f

%f フォーマット指定子は、分数値を表すために実装されています。これは、変数に格納されている小数値または浮動小数点値を出力するためのprintf()関数内に実装されています。小数データまたは浮動データを印刷する必要がある場合は常に、%f 形式指定子を使用する必要があります。

構文:

printf("\%f", );

文字フォーマット指定子%c

%c 形式指定子は、文字を表すために実装されています。これは、変数に格納されている文字を出力するためにprintf()関数で使用されます。文字データを印刷する場合は、%c 形式指定子を組み込む必要があります。

構文:

printf("\%c",);

文字列形式指定子%s

%s 形式指定子は、文字列を表すために実装されています。これは、文字配列変数に格納されている文字列を出力するためのprintf()関数で使用されます。文字列を出力する必要がある場合は、%s 形式指定子を実装する必要があります。

構文:

printf("\%s",);

符号なし整数形式指定子%u

%u 形式指定子は、メモリに格納されている符号なし10進整数を持つ変数のアドレスから値をフェッチするために実装されています。これは、符号なし整数変数を出力するためにprintf()関数内で使用されます。

構文:

printf("\%u",);

Long Int形式指定子%ld

%ld 形式指定子長整数値を表すために実装されています。これは、変数に格納されている長整数値を出力するためのprintf()関数で実装されます。

構文:

printf("\%ld",);

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です