一.scanf家族
1.scanf家族的原型如下。每個原型中的省略號表示一個可變長度的指針列表。從輸入轉換而來的值逐個存儲到這些指針參數所指向的內存位置。
int fscanf(FILE *stream,char const *format,…);
int scanf(char const *format,…);
int sscanf(char const *format,…);
2.以上這些函數都從輸入源讀取字符並根據format字符串給出的格式代碼對它們進行轉換
3.不同點:
1>fscanf的輸入源就是作為參數給出的流
2>scanf從標准輸入讀取
3>sscanf從第一個參數所給出的字符串中讀取字符。
3.當格式化字符串到達末尾或者讀取的輸入不再匹配格式字符串所指定的類型時,輸入就停止。
4.在任何一種情況下,被轉換的輸入值的數目作為函數的返回值返回。
5.如果在任何輸入值被轉換之前文件就已到達尾部,函數就返回常量值EOF。
二.printf家族
1.printf函數家族用於創建格式化的輸出。這個家族共有三個函數:fprintf、printf 和sprintf。
2.它們的原型如下:
int fprintf(FILE *stream,char const *format,…);
int printf(char const *format,…);
int sprint(char *buffer,char const *format,…);
3. printf根據格式代碼和format參數中的其他字符對參數列表中的值進行格式。
4.不同點:
1>使用printf,將輸出結果輸出到標准輸出。
2>使用fprintf,可以使用任何輸出流。
3>sprintf把它的結果作為一個NUL結尾的字符串存儲到指定的buffer緩沖區而不是寫人到流中。
這三個函數的返回值是實際打印或存儲的字符數。