簡単にC言語の中でprintf()を分析して、sprintf()、scanf()、sscanf()の用法と違います。


print構文:璣includeint print print print(const char*format);printf()関数は、フォーマットに従ってSTDOUT(標準出力)および他のパラメータに出力します。戻り値は出力の文字数です。sprintf文法:芰include<stdio.h>int sprint sprintf(char*buffer、const char*format);sprintf()関数はprintf()と同じで、フォーマット制御は全く同じです。printfで使用されるフォーマット文字列であれば、sprintfでも使用できます。ただ、出力をbuffer(バッファ)に送ります。戻り値は書き込みの文字数です。
機能一:数字文字列sprintf(s、“%−8 X”、12345)をフォーマットする;sは「12345」になります   ”大文字の「X」は、16進数大文字で、幅が8つの位置を占め、「-」は左揃えを表します。
機能二:浮動小数点を制御して浮動小数点を印刷するフォーマット浮動小数点数は書式子「%f」を使用して制御し、デフォルトでは小数点以下6桁の数字%m.nf」形式を保持しています。ここでmは印刷の幅を表しています。nは小数点以下の桁数sprintf(s、%10.3 f)、3.1415626)。sがなります      3.142″
機能3:2つの文字列を直接接続する:char dest[256]char src 1[]=''a','b',c','d','e';char src 2[]=''1','2','3','4';sprintf(dest,「%5 s%4 s」,src 1,src 2);out put:「abc de 1234」
文字列の一部を切り取って接続します。char dest[256]char src 1[]=''a','b',c','d','e';char src 2[]=''1','2','3','4';sprintf(dest、「%***」、2,src 1,3,src 2)//out put:「ab 123」
機能四:文字/アスciiコードは私達が知っています。「%d」または「%x」を使って文字を印刷すれば、その10進数または16進数のASCIIコードが得られます。逆に「%c」を使って整数を印刷すると、対応するASCII文字が見られます。以下の手順では、すべての可視文字のASCIIコード対照表をスクリーンに印刷します。(ここではprintfを使用します。注意してください。「%X」と併用すると自動的に16進数が増加します。”0 X”プレフィックス):for(int i=32;i<127;i+){    printf(「%c」:%3 d 0 x%〼04 X",i,i);
機能5:アドレス情報を印刷したり、デバッグしたりする時、変数やメンバーの住所を確認したいかもしれません。住所やポインタは32桁の数にすぎないので、記号なし整数を印刷する「%u」を使って彼らをプリントアウトしてもいいです。しかし、普通はやはり10進数ではなく16進数で住所を表示するのが好きです。しかし、これらは間接的な方法であり、アドレス印刷に対してはsprintfは専用の「%p」を提供している。これは実際にはsprintf(%0**x)、2*size of、&i)に相当すると思います。
機能六:返却値printfとsprintfの返却値を利用して、書き込みの文字数です。つまり、一回のsprineコールが終わると、もう一回のstreenを呼び出しなくても、結果文字列の長さが分かります。例えば:int len=sprintf(s、“%d”、i);scanf文法:  #include  int scanf(const char*format);scanf()関数は、format(フォーマット)で指定されたフォーマットに基づいてstdin(標準入力)から読み出し、データを他のパラメータに保存します。sscanf文法:  #include  int sscanf(const char*buffer、const char*format);関数sscanf()とscanf()は類似していますが、入力はbuffer(バッファ)からだけです。sscanfはscanfと似ています。入力のためのものです。後者はスクリーン(stdin)を入力源としています。前者は固定文字列を入力源として使用します。%[]は文字セットを読み込むと表しています。内の文字列は1以上の文字で構成できます。空の文字セット(%[])は規定に違反し、予知できない結果をもたらすことができます。規定違反です。a-z]a-z間の文字列を読み出し、それ以前でないとchar s[]=「hello,my friend」のように停止します。注意:カンマはa-zの間ではない。string=hello
%a-zはa-z間にない文字列を読み、a-z間の文字に触れると停止します。注意:カンマはa-zの間ではないです。string=HELLO
%*[=]の前に*番号が付いていますが、変数は保存されていません。条件に合った文字列をスキップします。char s[]="notepad=1.0.0.1001"char szfilename[32]=“”;int i=sscanf(s,「%*^=」,szfilename)//szfilename=NULLは、intj=sscanfを保存していません。szfilename=1.0.0.1001
%40 cは40文字%の文字を読みだしました。'='号に触れるまで文字列を読みました。'^'の後にはもっと多くの文字を持つことができます。例えば、char s[]="notepad=1.0.0.1001"char szfilename[32]=“”;int i=sscanf(s,“%[=]”,szfilename);           // szfilename=notepadはパラメータフォーマットが「%[=]」なら、notepad:1.0.0.1001からnotepadを読み出すこともできます。