%d, %i | 有正負號的十進位整數 | int |
%u | 無正負號的十進位整數 | int |
%o | 無正負號的八進位整數 | int |
%x, %X | 無正負號的十六進位整數 | int |
%c | 字元 | char |
%s | 字串 | char * |
%f | 浮點數 | double |
%p | 記憶體位址的編碼 | void * |
%% | 百分比符號 | % |
printf() 可接受多個參數,至少要有第一個所要輸出的格式化字串,隨後為依格式化字串中轉換格式的數列接上需要的參數,這是說,如果格式化字串中用了三個轉換格式,其後就需要另外三個對應的參數。
以下程式示範使用 printf() 的結果
#include <stdio.h> int main(void) { int n = 5; printf("He has %d books.\n", n); return 0; } /* 《程式語言教學誌》的範例程式 http://pydoing.blogspot.com/ 檔名:cprintf1.c 功能:示範 stdio.h 中函數 printf() 的使用 作者:張凱慶 時間:西元2010年6月 */
編譯後執行,結果如下
轉換格式的百分比符號後可接數字跟小數點,數字表示要印出幾格空間,若有負號則靠左對齊,無負號則靠右對齊,小數點後接數字則表示要列印到小數點後幾位。如下例每列印出 12 格,小數點後 8 位,靠右對齊
#include <stdio.h> int main(void) { double n = 22.2; int i; for (i = 1; i <= 10; i++) { printf("%12.8f\n", n / i); } return 0; } /* 《程式語言教學誌》的範例程式 http://pydoing.blogspot.com/ 檔名:cprintf2.c 功能:示範 stdio.h 中函數 printf() 的使用 作者:張凱慶 時間:西元2010年6月 */
編譯後執行,結果如下
您可以繼續參考
輸出與輸入 stdio.h
- int getchar(void);
- char *gets(char *s);
- int putchar(int c);
- int puts(const char *s);
- int printf(const char *format, ...);
- int sprintf(char *s, const char *format, ...);
- int scanf(const char *format, ...);
- int sscanf(char *s, const char *format, ...);
- FILE *fopen(const char *filename, const char *mode);
- FILE *freopen(const char *filename, const char *mode, FILE *stream);
- int fflush(FILE *stream);
- int fclose(FILE *stream);
- int remove(const char *filename);
- int rename(const char *oldname, const char *newname);
- int fprintf(FILE *stream, const char *format, ...);
- int fscanf(FILE *stream, const char *format, ...);
- int fgetc(FILE *stream);
- char *fgets(char *s, int n, FILE *stream);
- int fputs(const char *s, FILE *stream);
- int fputs(const char *s, FILE *stream);
- size_t fread(void *ptr, size_t size, siz_t nobj, FILE *stream)
- size_t fwrite(const void *ptr, size_t size, size_t nobj, FILE *stream)
- int fseek(FILE *stream, long offset, int origin);
- long ftell(FILE *stream);
- void rewind(FILE *stream);
1 則留言:
請問stdio.h中printf之函數原型:int printf(const char *format, ...);為何與函數原型的宣告: datatype name(datatype,...);之格式不同?謝謝。
張貼留言