についてご存じなければ %私 と %d フォーマット指定子については、この記事のガイドラインに従ってください。
%i フォーマット指定子
Cプログラミング言語では、 %私 printf() 関数とともに使用すると、符号付き整数を出力するために使用されます。符号付き整数は、正または負のいずれかになります。 %i を使用する場合の C プログラミングでは、渡される引数値は、整数データ型で自動的に評価される式または整数型でなければなりません。また、 %私 符号付き整数の範囲内にある文字値を読み取る指定子。
%d フォーマット指定子
の %d 一方、フォーマット指定子は、C プログラミング言語で符号なし整数を出力するために使用されます。ここで、符号なし整数は正の整数です。 C 言語で %d を使用すると、引数の型の値 整数 .
違い
両方 %私 と %d 書式指定子は、C プログラミング言語で整数を出力するためによく使用されます。 printf() 関数を使用する場合は、使用方法が似ているだけでなく、同じように動作する場合があります。
両方の書式指定子が使用されているサンプル コードでフォローアップしましょう。
#include
整数 主要 ( ) {
整数 桁 ;
printf ( '任意の数字を入力してください: ' ) ;
スキャン ( '%私' 、 & 桁 ) ;
printf ( ' \n 桁: %i \n ' 、 桁 ) ;
printf ( '数字は: %d \n ' 、 桁 ) ;
戻る 0 ;
}
このコードでは、まず変数を初期化し、scanf() を使用してユーザーから値を取得します。次に、次を使用して出力を表示します %d と %i .
出力:
で使用すると、どちらも同様の出力を提供します printf() 関数。正の値を入力しても負の値を入力しても、結果は常に同じになります。
しかし、scanf 関数を見ると、正しく区別できます。上記のコードで、次のような 10 進数値を入力すると、 「012」 .使用する場合 「%d」 それ以外の %私、 出力12が得られます。その理由は %d ユーザー入力からのゼロ値 0 を無視します。
#include整数 主要 ( ) {
整数 桁 ;
printf ( '任意の数字を入力してください: ' ) ;
スキャン ( '%d' 、 & 桁 ) ;
printf ( ' \n 桁: %i \n ' 、 桁 ) ;
printf ( '数字は: %d \n ' 、 桁 ) ;
戻る 0 ;
}
出力
を使用して同じ値を入力した場合 %私 scanf() 関数と同様に、この場合、出力は 10 になります。その理由は %私 012 の 10 進値 (8 進表現) を出力します。
#include整数 主要 ( ) {
整数 桁 ;
printf ( '任意の数字を入力してください: ' ) ;
スキャン ( '%私' 、 & 桁 ) ;
printf ( ' \n 桁: %i \n ' 、 桁 ) ; //靴の出力
printf ( '数字は: %d \n ' 、 桁 ) ; //靴の出力
戻る 0 ;
}
結論
フォーマット指定子は、最初に % 通常、入力にどのようなデータが配置され、どのデータが表示されるかがわかります。 %d と %私 C プログラミングで広く使用されている 2 つの指定子です。これらは、printf() 関数で使用すると似ていますが、scanf() 関数で使用すると異なる結果を出力します。