1. 程式人生 > >輸入與輸出(初學者)

輸入與輸出(初學者)

1、資料輸入與輸出

(1)所謂輸入與輸出是以計算機為主題而言的。

(2)本部落格介紹的是向標準輸出裝置顯示器輸出資料的語句。

(3)在C語言中,所有資料輸入輸出都是由庫函式完成,因此都是函式語句。

(4)在使用C語言庫函式時,要用預編譯命令#include將有關“標頭檔案”包括到原始檔中。使用標準輸入輸出庫函式時要用到"stdio.h"檔案,因此原始檔開頭應有以下預編譯命令:

#include<stdio.h>或#include"stdio.h"

stdio是standand input&output的意思。

(5)考慮到printf和scanf函式使用頻繁,系統允許在使用這兩個函式時可不加#include<stdio.h>

2、字元資料的輸入輸出

(1)putchar函式(字元輸出函式):putchar函式是字元輸出函式,其功能是在顯示器上輸出單個字元。其一般形式為:putchar(字元變數)

例如:putchar('A');     //輸出大寫字母A

           putchar(x);       //輸出字元變數x的值

           putchar('\101')  //也是輸出字元A,注:101為八進位制

           putchar('\n')      //換行

注:(1)對控制字元則執行控制功能,不在螢幕上顯示。

(2)使用本函式前必須要用檔案包含命令:#include<stdio.h>

例:

#include <stdio.h>

void main()
{
    char a='B',b='o',c='k';
    putchar(a);putchar(b);putchar(b);putchar(c);putchar('\t');putchar(a);putchar(b);
    putchar('\n');
    putchar(b);putchar(c);
}

(2)getchar函式(鍵盤輸入函式):getchar函式的功能是從鍵盤上輸入一個字元。其一般形式為:getchar();通常把輸入的字元賦予一個字元變數,構成賦值語句,如:cahr C;C=getchar();

例:

#include <stdio.h>

void main()
{
    char C;
    printf("input a character\n");
    C=getchar();
    putchar(C);
    putchar('\n');
}

3、格式輸入與輸出:printf函式(格式輸出函式):printf函式稱為格式輸出函式,其最末一個字母f即為”格式“(format)之意。其功能是按使用者指定的格式,把指定的資料顯示到顯示器的螢幕上。

(1)print函式呼叫的一般形式:printf函式是一個標準庫函式,它的函式原型在標頭檔案”stdio.h"中。但作為一個特例,不要求在使用printf函式之前必須包含stdio.h檔案。

printf函式呼叫的一般形式為:printf(“格式控制字串”,輸出列表)其中格式控制字串用於指定輸出格式。格式控制字串可由格式字串和非格式字串兩種組成。格式字串是以%開頭的字串,在%後面跟有各種格式字元,以說明輸出資料的型別、形式、長度、小數、位數等。常見的有:

%d:十進位制整數 %x十六進位制整數 %o八進位制整數 %u無符號十進位制整數 %c一個字元 %s字串 %e浮點數(指數形式,有稱科學記數法) %f浮點數(小數形式),有六位小數部分 %ld十進位制長整型數 %lf雙精度浮點數(小數形式),取到小數點後20位 %%百分號本身 非格式字串在輸出時原樣列印,在顯示中其提示作用。 輸出列表中輸出了各個輸出項,要求格式字串和個輸出項在數量和型別上一一對應。 例:
#include <stdio.h>

void main()
{
    int a=88,b=89;
    printf("%d%d\n",a,b);
    printf("%d%d\n",a,b);
    printf("%c,%c\n",a,b);
    printf("a=%d,b=%d",a,b);
}

(2)標誌: 標誌字元為-+#、空格四種,其意義下表所示:

 

標誌 意義
-  結果左對齊,右邊填空格
+  輸出符號(正號或負號)
空格 輸出值為正時冠以空格,為負時冠以負號
# 對c,s,d,u類無影響;對o類, 在輸出時加字首。對x類,在輸出時加字首0x;對e,g,f 類當結果有小數時才給出小數點 

(3)輸出最小寬度:用十進位制整數來表示輸出的最少位數。 若實際位數多於定義的寬度,則按實際位數輸出, 若實際位數少於定義的寬度則補以空格或0·

(4)精度:精度格式符以“.”開頭,後跟十進位制整數。本項的意義是:如果輸出數字,則表示小數的位數;如果輸出的是字元, 則表示輸出字元的個數;若實際位數大於所定義的精度數,則截去超過的部分。

(5)長度:長度格式符為h,l兩種,h表示按短整型量輸出,l表示按長整型量輸出。

例:

#include <stdio.h>

void main()
{
    int a=15;
    float b=123.1234567;
    double c=12345678.1234567;
    char d='p';
    printf("a=%d,%5d,%o,%x\n",a,a,a,a);
    printf("b=%f,%lf,%5.4lf%e\n",b,b,b,b);
    printf("c=%lf,%f,%8.4f\n",c,c,c);
    printf("d=%c,%8c\n",d,d);
}

注:輸出列表中的求值順序,不同編譯器不一定相同,可以從左到右,也可以從右到左。

區分:單個printf語句和多個printf語句輸出結果是不同的。

#include <stdio.h>

void main()
{
    int i=8;
    printf("%d\n%d\n%d\n%d\n%d\n%d\n",++i,--i,i++,i--,-i++,-i--);
}
#include <stdio.h>

void main()
{
    int i=8;
    printf("%d\n",++i);
    printf("%d\n",--i);
    printf("%d\n",i++);
    printf("%d\n",i--);
    printf("%d\n",-i++);
    printf("%d\n",-i--);
}