天天看點

C語言學習之基礎文法二

資料的輸入和輸出

1、字元輸入函數

字元輸入函數(getchar函數)是從标準輸入裝置上輸入一個字元到計算機内部。

 函數調用格式:getchar();

說明:

  1. 須包含頭檔案stdio.h
  2. getchar是一個無參函數
  3. 一個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

格式說明符由%和類型說明符組成,用于指定輸入資料的類型和寬度。在%和類型說明符之間也可以有附加的格式說明符

C語言學習之基礎文法二
C語言學習之基礎文法二

說明:

  1. scanf函數中的格式字元前可以用一個整數指定輸入資料所占的寬度。但不可以對實型資料指定小數位指定小數位的寬度。
  2. 格式說明的個數應該與輸入項的個數相同
  3. 在格式控制中不能出現轉義字元。如: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(“格式控制”,輸出項表)

格式控制

要求每個輸出項都必須用一個格式說明符指定其輸出格式

C語言學習之基礎文法二

在%和格式字元之間可以增加附加格式說明符,用于指定輸出資料寬度和輸出形式

C語言學習之基礎文法二
#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指派為空格)
}