資料的輸入和輸出
1、字元輸入函數
字元輸入函數(getchar函數)是從标準輸入裝置上輸入一個字元到計算機内部。
函數調用格式:getchar();
說明:
- 須包含頭檔案stdio.h
- getchar是一個無參函數
- 一個getchar函數隻能接收一個字元,在輸入時,隻有在使用者鍵入“Enter鍵”(Enter)後,輸入才執行。
2、字元輸出函數
字元輸出函數(putchar)是在标準輸出裝置上輸出一個字元。
函數調用格式:putchar(ch);
Ch是函數參數,可以是字元型或整型的常量變量或表達式
#include <stdio.h>
void main()
{
char c1,c2;
c1='a';c2='B';
putchar(c1);
putchar(c2);
putchar(c1-32); //先進行ASCII碼值的運算再輸出
putchar(c2+32);
}
程式運作結果:aBAb5
#include <stdio.h>
void main()
{
putchar(getchar());
putchar(getchar());
}
運作程式,輸入:abEnter
輸出結果: ab
假如采用先輸入字元a,按回車,在輸入字元b,按回車。會發現第二個字元b無法顯示在螢幕上,換句話說,第二個字元b沒有輸入到機器内部。原因在于“回車”也是字元。第一次輸入a後的回車,機器把它當成第二個字元了。
3、格式輸入函數
格式輸入函數(scanf函數)的功能是從鍵盤上輸入資料,該資料按指定的輸入格式被賦給相應的輸入項。包含在頭檔案stdio.h中
格式:scanf(“格式控制”,輸入項表);
其中:格式控制符規定資料的輸入格式,必須用雙引号括起來,其内容僅僅是格式說明。輸入表項則由一個或多個變量位址組成(變量位址就是在變量名前加位址符“&”),當變量位址有多個時,各變量位址之間用逗号“,”隔開
格式控制5
格式說明符由%和類型說明符組成,用于指定輸入資料的類型和寬度。在%和類型說明符之間也可以有附加的格式說明符
說明:
- scanf函數中的格式字元前可以用一個整數指定輸入資料所占的寬度。但不可以對實型資料指定小數位指定小數位的寬度。
- 格式說明的個數應該與輸入項的個數相同
- 在格式控制中不能出現轉義字元。如:scanf("%d\n",&a)
從鍵盤輸入資料
當執行scanf函數輸入資料時,使用者從鍵盤輸入時,最後一定要按下Enter鍵,scanf函數才能接收從鍵盤輸入的資料。
1)輸入數值資料
當從鍵盤輸入數值資料時,輸入的數值資料之間需要間隔開,具體采用何種形式間隔,應與格式控制的形式相一緻。
假設有是哪個整型變量a,b,c,有輸入資料:
(1)scanf("%d%d%d",&a,&b,&c);
鍵盤輸入時可采用兩種方式(假設給a賦予1,b賦予2、c賦予3)
1 2 3Enter(數之間可以用空格或制表符分隔)
或1Enter
2Enter
3Enter
(2)scanf("%d,%d,%d",&a,&b,&c);
鍵盤輸入為1,2,3Enter
(3)scanf("a=%d,b=%d,c=%d",&a,&b,&c);
鍵盤輸入則為:
a=1,b=2,c=3Enter
一句話就是scanf()中的“”下有什麼就鍵入什麼
2)指定輸入資料所占寬度
在格式字元前加入一個整數,用來指定輸入資料所占的寬度
3)忽略輸入資料的方法
可以在格式字元和%之間加一個*号,它的作用是跳過對應的輸入資料。
int a1,a2,a3;
scanf("%d%*d%d%d",&a1,&a2,&a3);
輸入資料:1 2 3 4Enter
将把1賦給a1,跳過2,把2賦給a2,把4賦給a3.
4、格式輸出函數
格式輸出函數(printf函數)的作用是按格式控制所指定的格式,在标準輸出裝置上将輸出項清單中的各項輸出。
printf(“格式控制”,輸出項表)
格式控制
要求每個輸出項都必須用一個格式說明符指定其輸出格式
在%和格式字元之間可以增加附加格式說明符,用于指定輸出資料寬度和輸出形式
#include <stdio.h>
void main()
{
cahr a='a'
int b=97;
printf("%c,%d\n",a,a);
printf("%c,%d\n",b,b);
printf("%s\n","CHINA");
}
輸出結果:
a,97
a,97
CHINA
注意:%s輸出一個字元串常量或一個字元數組中存放的字元串,按照%s輸出字元串時,是從第一個字元開始輸出,遇到字元串結束标志‘\0’為止。
若定義int a=2,b=3;float x=3.5,y=2.5;則下面表達式的值為3.5
(float)(a+b)/2+(int)x%(int)y
#include <stdio.h>
void main()
{
int x=10,y=10;
printf("%d%d\n",x--,--y); //109
}
#include <stdio.h>
void main()
{
int x=3,y=3,z=1;
printf("%d%d\n",(++x,y++),z+2); //33
}
寫出下面程式輸入“1 2 3”後的運作結果
#include <stdio.h>
void main()
{
int a,c;char b;
scanf("%d%d%d",&a,&b,&c);
printf("a=%d,b=%c,c=%d\n",a,b,c);//a=1,b= ,c=2(b指派為空格)
}