使用語(yǔ)言的過(guò)程實(shí)際上就是輸入---處理---輸出
,本次主要學(xué)習(xí)標(biāo)準(zhǔn)化輸出printf() 標(biāo)準(zhǔn)化輸出
档泽、scanf() 標(biāo)準(zhǔn)化讀入
以及進(jìn)一步簡(jiǎn)單的控制因素等俊戳。
printf() 函數(shù)
printf()函數(shù)是包含在頭文件的stdio.h
中,使用的格式主要為:
printf("格式化字符串", 輸出的參數(shù))
printf格式化輸出的一般形式
%c: 輸出單個(gè)字符
%d: 輸出十進(jìn)制形式的整數(shù)
%e/E: 輸出指數(shù)形式的單雙精度實(shí)數(shù)馆匿,默認(rèn)是6位小數(shù)
%f: 輸出小數(shù)形式的單雙精度實(shí)數(shù)抑胎,默認(rèn)是6位小數(shù)
%o: 以八進(jìn)制形式輸出無(wú)整數(shù)符號(hào)
%s: 輸出字符串,參數(shù)為char的指針(什么是指針渐北?)
%u: 輸出十進(jìn)制形式的無(wú)符號(hào)整數(shù)
%x/X: 輸出十六進(jìn)制的無(wú)符號(hào)整數(shù)
%%: 表示輸出的是百分號(hào)
printf輸出的應(yīng)用實(shí)例
- 簡(jiǎn)單輸出整數(shù)
printf("%d",10)
- 依據(jù)最小寬度輸出
%nd:其中n是具體的阿拉伯?dāng)?shù)字阿逃,這是規(guī)定最小的輸出的寬度。
#include <stdio.h>
void main(void)
{
int x=1,y=2;
printf("%4d%4d\n",x,y); /* 測(cè)試輸出的兩個(gè)參數(shù)是不是需要分開(kāi)*/
float z=-200;
printf("%10ld\n",z); /* 發(fā)現(xiàn)當(dāng)定義的數(shù)據(jù)類型和需要的類型不一致,格式化輸出不會(huì)報(bào)錯(cuò) */
}
例如上面的例子恃锉,輸出的結(jié)果是:
1 2
140424125706240 /* 顯然這個(gè)是錯(cuò)誤的輸出形式 */
-
char函數(shù)輸出字符---存在疑惑
本來(lái)打算使用char 輸出單個(gè)字符的使用搀菩,但是依據(jù)代碼:
#include <stdio.h>
int main()
{
char c="d";
printf("%s\n",c);
}
上述代碼總是輸出錯(cuò)誤,我是用gcc編譯的破托,然后報(bào)錯(cuò)語(yǔ)句是:
P05.printf.c: In function ‘main’:
P05.printf.c:5:8: warning: initialization makes integer from pointer without a cast [enabled by default]
char c="d";
^
通過(guò)搜索肪跋,發(fā)現(xiàn)一種寫(xiě)法是可以通過(guò)的,但是具體的原因是不清楚的:
#include <stdio.h>
int main () {
char greeting[] = "H";
printf("Greeting message: %s\n", greeting );
return 0;
}
顯然上面的過(guò)程存在一個(gè)不懂的地方土砂,目前還是不能夠解決掉州既,等等看后面是否能夠解決。
- 輸出浮點(diǎn)數(shù)
這樣的輸出需要注意的是單精度浮點(diǎn)數(shù)和雙精度浮點(diǎn)數(shù)是不同的萝映,其中單精度浮點(diǎn)數(shù)有效位數(shù)為7位吴叶,若一個(gè)數(shù)字太大,有8位整數(shù)部分和6位小數(shù)部分序臂,那么兩個(gè)這樣的數(shù)相加蚌卤,他們的個(gè)位
實(shí)際上就是不準(zhǔn)的了,這樣會(huì)產(chǎn)生很大的計(jì)算誤差贸宏。
雙精度浮點(diǎn)數(shù)的有效的位數(shù)是16位造寝,所以這樣產(chǎn)生的數(shù)字就是16個(gè)數(shù)字時(shí)準(zhǔn)確的。
此外輸出的過(guò)程還可以通過(guò)%e選擇科學(xué)技術(shù)法的形式吭练,非常有用诫龙。
兩個(gè)字符串的輸出方式
- puts()
- putchar()
其中,puts是可以輸出字符串帶上換行符鲫咽。putchar也是輸出字符串的签赃,但是我看,僅為輸出單個(gè)字符串分尸。沒(méi)什么特別锦聊。
** notes:本次書(shū)寫(xiě)中有個(gè)輸出單個(gè)字符串的char的問(wèn)題一直未解決。箩绍。需要進(jìn)一步學(xué)習(xí)孔庭。