Linux 使用strerror 和 perror 函數(shù)來打印響應(yīng)的錯誤信息 ,這兩個函數(shù)的標(biāo)準(zhǔn)調(diào)用格式說明如下:
#include<string.h>char *strerror(int errnum)#include<stdio.h>void perror(const char *msg)
strerror函數(shù)的返回值是一個指向消息字符串的指針,這個消息字符串即為出錯信息的字符串
perror函數(shù)沒有返回值,其輸出如下:
“由msg指針指向的字符串” + “:” + errno + “回車換行”
#include<stdio.h>#include<string.h>#include<errno.h>int main(int argc, char *argv[]){ printf("EACCES:%s/n", strerror(EACCES));//打印沒有權(quán)限錯誤信息 errno = EHOSTDOWN;//EHOSTDOWN 服務(wù)器關(guān)閉 perror(argv[0]); return 0;}
標(biāo)準(zhǔn)輸入輸出函數(shù)
標(biāo)準(zhǔn)輸出函數(shù)
printf函數(shù)用于將格式化數(shù)據(jù)輸出,其標(biāo)準(zhǔn)調(diào)用格式如下:
#include<stdin.h>printf(const char *format, …);
其參數(shù)是format是一個字符串,包含字符,字符序列,和格式說明,其中字符部分與字符序列按順序輸出,而格式說明以”%”開始,格式說明是跟隨的相同序號數(shù)據(jù)按格式說明轉(zhuǎn)換和輸出.
printf函數(shù)的格式說明結(jié)構(gòu)為:%flags_width.precicion_{b|B|l|L}_type
type:用來說明參數(shù)是字符串,字符,數(shù)字或者指針字符
printf函數(shù)的type參數(shù)
| type | 輸出結(jié)果 |
|---|---|
| D | 有符號十進(jìn)制數(shù) |
| U | 無符號十進(jìn)制數(shù) |
| O | 無符號八進(jìn)制數(shù) |
| x | 無符號十六進(jìn)制數(shù),使用小寫 |
| X | 無符號十六進(jìn)制數(shù),使用大寫 |
| f | 格式為[-]ddd.ddd的浮點(diǎn)數(shù) |
| e | 格式為[-]ddde+dd的浮點(diǎn)數(shù) |
| E | 格式為[-]dddE+dd的浮點(diǎn)數(shù) |
| g | 使用f或者e中比較合適形式的浮點(diǎn)數(shù) |
| G | 使用f或者E中比較合適形式的浮點(diǎn)數(shù) |
| c | 單字符常數(shù) |
| s | 字符串常數(shù) |
| p | 指針 |
| n | 無輸出但在下一參數(shù)所指整數(shù)中寫入字符串 |
| % | ”%”字符 |
b,B,l,L用于type之前,說明整型d,i,u,o,x,X的char或者long轉(zhuǎn)換
flags是標(biāo)志
printf函數(shù)flags參數(shù)
| flags | 作用 |
|---|---|
| - | 左對齊 |
| + | 有符號,數(shù)值總是以正負(fù)號開始 |
| 空格 | 數(shù)字總是以符號或者空格開始 |
| * | 忽略 |
width是域?qū)?/p>
precision精度,對于不同類型的意義不同,可能引起結(jié)尾或者舍入
printf函數(shù)的precision精度
| 數(shù)據(jù)類型 | 說明 |
|---|---|
| d,u,o,x,X | 輸出數(shù)字的最小位,輸出數(shù)字超出也不截斷尾 ,如果超出在左邊,則填入0 |
| f,e,E | 輸出數(shù)字的小數(shù)位,末位四舍五入 |
| g,G | 輸出數(shù)字的有效位 |
| c,p | 無影響 |
| s | 輸出字符的最大字符數(shù),超出部分將不顯示 |
標(biāo)準(zhǔn)輸入函數(shù)
scanf函數(shù)用于用戶向程序輸入數(shù)據(jù),其調(diào)用格式如下:
#include<stdin.h>scanf(const char *format,...)
示例:
#include<stdio.h>int main(int argc,char *argv[]){ char str[30]; printf("輸入一個字符串/n"); scanf("%s", str);//輸入一個字符串 printf("str=%s/n",str);//打印字符串 int a = -128; printf("%d/n", a);//打印有符號整數(shù) printf("%u/n", a);//打印無符號整數(shù) int b = 10; printf("%x/n", b);//打印16進(jìn)制數(shù),小寫 printf("%X/n", b);//打印16進(jìn)制數(shù),大寫 float c = 1.221121; printf("%f/n", c);//打印浮點(diǎn)數(shù) printf("%-.3f/n", c);//打印有效位數(shù)為3,左對齊的浮點(diǎn)數(shù) return 0;
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
新聞熱點(diǎn)
疑難解答
圖片精選