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