1. 程式人生 > >C語言——輸入輸出

C語言——輸入輸出

資料的輸入輸出

輸入:從輸入裝置(如鍵盤,磁碟,光碟,掃描器等)向計算機輸入資料。
輸出:從計算機向輸出裝置(如顯示器,印表機等)輸出資料。
(一)用printf函式輸出資料

printf函式是格式輸出函式。程式設計人員必須指定輸出資料的格式,即根據資料的不同型別指定不同的格式。

printf函式的一般格式:
printf(格式控制,輸出列表)
1,格式控制包括兩部分——格式宣告和普通字元

· 格式宣告——用雙撇號括起來的一個字串。
由% 和 格式字元組成,如%d,%c等
作用是將輸出的資料轉換為指定的格式然後輸出。
· 普通字元——需要輸出時原樣輸出的字元
2,輸出列表是需要輸出的資料,可以是常量,變數,表示式



舉例如下:

 int a = 9;
 int b = 0;
 printf("a = %d b = %d", a, b);
 
 //%d,%d是格式宣告
 //a = , b=  ‘\n’是普通字元,原樣輸出
 //a,b是輸出列表

3,格式字元

· d 格式符——%d——有符號十進位制整數的輸出
· u格式符——%u——無符號十進位制數的輸出
· c 格式符——%c——一個字元輸出
· s 格式符——%s——一個字串輸出
· f 格式符——%f——實數輸出,包括單精度,雙精度實數
——————%m.nf——指定資料寬度和小數位數
——————%-m.nf——輸出的資料向左對齊
· e格式符——%e——指數輸出
· i格式符——%i——與%d相同
· o格式符——%o——八進位制整數輸出,不帶符號,不輸出前導符o
· x/X格式符——%x/X——十六進位制形式輸出整數,無符號,不輸出前導符ox或oX,
用x時,a~f輸出小寫;用X時,輸出大寫



4,使用printf函式時的說明

· 使用printf函式時,格式宣告和輸出列表要一一對應,否則會出錯。
· 注意格式字元的大小寫,有的能大寫,有的不能。
· 如果想輸出字元’’%’’,則應該在格式字串中連續用兩個%

printf("%f%%\n",1.0/3);
//%f 對應 1.0/3 = 0.333333
//%%則輸出一個%

(二)用scanf函式輸入資料

與printf函式一樣, 是格式輸入函式。程式設計人員必須指定輸入資料的格式,即根據資料的不同型別指定不同的格式。

scanf函式的一般形式:
scanf(格式控制,地址列表)
1,格式控制同printf函式
2,地址列表——由若干個地址組成的列表,可以是變數的地址,或字串的首地址。
3,使用scanf函式時應該注意的問題


· 地址列表裡是地址變數,而不是變數名
如下面的程式碼是錯誤的:

int a = 0;
int b = 0;
scanf("%d%d",a,b);

應該改成

int a = 0;
int b = 0;
scanf("%d%d",&a,&b);

· 如果格式控制字串中還有其他字元,則輸入時應該在對應位置上輸入相同字元。
如:

int a = 0;
scanf("a=%d",&a);

則輸入的時候,如果輸入a為5,則應該輸入 a=5,只輸入5就錯了
· 用%c格式宣告輸入字元時,空格字元和轉義字元都作為有效字元輸入

scanf("%c%c%c",&c1,&c2,&c3);

//執行此函式時應該連續輸入三個字元,中間不要有空格,應該輸入abc,而不是a b c

· 在輸入數值時,在兩個數值之間應該插入空格,或其他分隔符,使系統能區分兩個數值
· 在輸入資料時,如果遇到空格,回車等不屬於字元的字元,認為該資料結束,開始下一個資料或字元。

(三)字元資料的輸入輸出

1,putchar函式輸出一個字元——putchar(c)——有引數

· putchar函式一次只能輸出一個字元。

2,getchar函式輸入一個字元——getchar()——無引數,直接從鍵盤接收字元

getchar函式一次只能接收一個字元,若需要多個字元就需要多個getchar函式。
getchar函式得到的字元可以賦給一個字元變數或者把一個整型變數,也可以補賦給任何變數,作為表示式的一部分,在表示式中利用它的值。

程式碼如下:

//從鍵盤輸入BOY三個字元,然後把它們輸入到螢幕上

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int main()
{
 char a, b, c;
 a = getchar();
 b = getchar();
 c = getchar();
 putchar(a);
 putchar(b);
 putchar(c);
 putchar('\n');
 system("pause");
 return 0;
}

結果如下:
在這裡插入圖片描述
若使getchar函式得到的字元不賦給任何值,則程式碼如下:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int main()
{
 putchar(getchar());
 putchar(getchar());
 putchar(getchar());
 putchar('\n');
 system("pause");
 return 0;
}

執行結果相同:
在這裡插入圖片描述