天天看點

C語言程式設計0基礎學習曆程(3)—— 輸入輸出

C語言程式設計0基礎學習曆程(3)—— 輸入輸出

目錄:

  • 輸出語句
  • 輸入語句

變量被指派之後,又該如何将其顯示在螢幕上呢?這就需要用到我們的輸出語句了。

一、輸出語句

C語言中使用printf()函數(标準輸出函數)來實作輸出。其作用為輸出一個字元串,或按照指定格式和類型輸出變量。

示例:

#include <stdio.h>
int main()
{
    int a=1;
    printf("%d\n",a);
    printf("Hello!\n");
    return 0;
}
           

在上例中我們看到了諸如 “%d” “\n” 之類的字元,那麼他們的作用是什麼呢?

(1)格式轉換說明

附:表1

符号 用法
%d 輸出帶符号的十進制整數(正數符号忽略)
%u 輸出無符号的十進制整數
%o 輸出無符号八進制整數(不帶前導符0)
%x 輸出無符号十六進制整數(小寫,且不帶前導符0x)
%X 輸出無符号十六進制整數(大寫,且不帶前導符0x)
%c 輸出一個字元
%s 輸出一個字元串
%f 以十進制小數輸出(隐含輸出小數點後6位)
%e 以指數形式輸出實數(小數點前有且僅有一位非0數字)
%E 以指數形式輸出實數
%g 自動選擇f或g格式中寬度較小的一種且不輸出無意義的0
%% 輸出 ‘%‘

(2)轉義字元

附:表2

字元 含義
\n 換行
\r 将光标停至行首但不換行
\0 空字元,用于字元串末尾表結束
\t 水準制表
\v 垂直制表
\b 倒退
\f 走頁換紙
\a 提示音
\" 列印一個雙引号
\’ 列印一個單引号
\ 列印一個反斜線
\? 列印一個問号
\ddd 1到3位8進制ASCII碼所代表的字元
\xhh 1到2位16進制ASCII碼所代表的字元

(3)格式修飾符

附:表3

格式修飾符 用法
l 在諸如d,o,x,u之類格式符之前添加,輸出long型資料
l 在諸如f,e,g之類格式符之前添加,輸出long double型資料
h 在諸如d,o,x之類格式符之前添加,輸出short型資料
m

若為正,當資料寬度小于m時,右對齊;大于m時全部輸出;若m前有前導符0,則在左側補充0直到到達m寬度;

若為負,則左對齊。

(注:m為整數)

.n

對于浮點數,指定輸出小數點後幾位;

對于字元串指定從左側開始輸出的字元數。

(注:n為非負整數)

例:

#include <stdio.h>
int main()
{
   int a=100000;
   printf("%10d",a);
   return 0;
}
           

運作結果:

C語言程式設計0基礎學習曆程(3)—— 輸入輸出

(4)printf 函數輸出格式

printf (“格式控制字元串”);

printf(“格式控制字元串”,輸出值參數表);

(5)其他輸出函數

putchar():把一個字元輸出到螢幕目前光标的位置。

二、輸入函數

C語言的輸入主要使用scanf()函數(标準輸入函數)來實作。其作用為從輸入緩存區中讀入一個字元串。

示例:

#include <stdio.h>
int main()
{
    int a;
    scanf("%d",&a);
    printf("%d",a);
    return 0;
}
           

運作結果:

C語言程式設計0基礎學習曆程(3)—— 輸入輸出

其中第一行為輸入,第二行為輸出。

(1)輸入結束标志:

  • 遇到空格符、回車、制表符時;
  • 達到輸入域寬;
  • 遇到非法字元輸入;

輸入必然有一個輸入的結束标志,否則電腦不知道何時才停止對資料的讀入。是以規定第一條的三種情況為輸入結束标志。

如同輸出可以指定輸出長度,輸入也可以指定輸入長度,使用方法同輸出函數。不同的是當資料超過指定寬度時,輸入函數結束本次輸入,而輸出函數則将資料全部輸出。

輸入函數中包含格式修飾符,是以輸入資料類型必須與函數所提供的格式保持一緻,否則可能引發錯誤,(讀者可以自己動手試一試)當遇到不同類型的輸入時可以結束此次輸出,如要求輸入一個整數類型,而輸入為“1,”,當遇到“,”時,程式認為結束此次輸入。可通過檢查輸入函數傳回值來判斷是否成功讀入資料,若傳回指定資料則為成功,若傳回EOF值(stdio.h中為-1)則表示失敗。

例1:

#include <stdio.h>
int main()
{
    int a;
    scanf("%3d",&a);
    printf("%d",a);
    return 0;
}
           

運作結果:

C語言程式設計0基礎學習曆程(3)—— 輸入輸出

例2:

#include <stdio.h>
int main()
{
    int a;
    scanf("%d",&a);
    printf("%d",a);
    return 0;
}
           

運作結果:

C語言程式設計0基礎學習曆程(3)—— 輸入輸出

(2)注意事項:

  • 在使用“%c”格式讀入字元時,空格字元和轉義字元(包括回車)都會被當做有效字元輸入。
  • 輸入格式中的變量前需加上取址符“&”。輸入格式字元串中不能包含諸如‘\n’類的轉義字元。
  • 實型資料無法規定輸入精度。

(3)scanf函數輸入格式

scanf(“格式控制符”,參數位址表);