大一第一學期期末C語言程序設計筆記(三)


因為考完了,沒什么心思整理了,筆記可能會有點亂。大家將就看看吧~

1、輸入

在C語言中,沒有專門的輸入輸出語句,所有的輸入輸出操作都是通過對標准I/O庫函數的調用實現。最常用的輸入輸出函數有scanf( )、printf( )、getchar( )和putchar( )。

<1>putchar函數

當我們要把字符一個一個輸出時,可以用putchar函數,它是一個專門輸出字符的函數。其一般形式是:putchar(<字符表達式>)

該函數的功能是輸出“字符表達式”的值。

putchar(A); //輸出字符'A';

putchar(‘A+1);   //輸出字符'B';

<2>printf 函數

1)printf格式符

格式字符 

說明 

d

以帶符號的十進制形式輸出整型數(正數不輸出符號) 

o

以8進制無符號形式輸出整型數(不輸出前導符0) 

x

以16進制無符號形式輸出整型數(不輸出前導符0x) 

u

以無符號10進制形式輸出整型數 

c

以字符形式輸出,只輸出一個字符 

s

輸出字符串 

f

以小數形式輸出單、雙精度數,隱含輸出6位小數 

e

以標准指數形式輸出單、雙精度數,數字部分小數位數為6位 

g

自動選用%f或%e格式中輸出寬度較短的一種格式,不輸出無意義的0 

 

 

 

 

 

 

 

 

 

 

 

 

2d格式符

用來控制整型數按十進制形式輸出。

%d,按整型數據的實際長度輸出。

%md,m為指定的輸出字段的寬度。如果數據的位數(包括負號)小於m,則右對齊左端補以空格,若大於m,則按實際位數輸出。 

%-md,m為指定的輸出字段的寬度。如果數據的位數小於m,則左對齊補以空格,若大於m,則按實際位數輸出

%ld,輸出長整型數據,也可以%mld,%-mld

 

 

3x格式符

以16進制形式輸出整型數據。不會出現負的十六進制數。可以用“%x”輸出長整型數。可以指定輸出字段的寬度,如“%12x”。x格式符一般用於輸出正整數或無符號類型的數據。

      4)u格式符(補碼)

用來輸出unsigned數據,即無符號數,以十進制形式輸出。

一個有符號整型數(int型)也可以用%u格式輸出,此時把符號位當作數值看待。

一個unsigned型數據也可以用%d格式輸出,按相互賦值的規則處理。unsigned數據也可用%o或%x格式輸出。

  5)c格式符

一個整數,只要它的值在0~255范圍內,也可以用字符形式輸,在輸出前將該整數轉換成換成相應的ASCII字符;反之,一個字符數據也可以用整型數形式輸出,但輸出的是其ASCII碼值。

      6)s格式符

  %s,用來輸出一個字符串(不包括雙引號)。用“%s”輸出時,遇‘\0’結束。

數組中有多個‘\0’時,遇第一個結束。scanf中%s輸入時,遇空格或回車結束。

%ms,輸出的字符串占m列,若字符串長度小於m,則“右對齊”,左邊補空格。如字 符本身長度大於m,則突破m的限制,將字符串全部輸出。

%-ms,若字符串長度小於m,則在m列范圍內,“左對齊”,右邊補空格。如字符本身 長度大於m,則突破m的限制,將字符串全部輸出。

%m.ns,輸出占m列,但只取字符串中左端n個字符。這n個字符輸出在m列的右側, 左邊補空格。

%-m.ns,其中m、n含義同上,n個字符輸出在m列范圍的左側,右面補空格。如果m   省略或n>m,則m自動取n值,即保證n個字符正常輸出。

7)e格式符

以指數形式輸出實數。

%e,不指定輸出所占的寬度和數字部分小數位數,由系統自動指定給出6位小數, 指數部分占5位(如e+002),其中“e”占一位,指數符號占一位,指數占3位。數值按標准化指數形式輸出(即小數點前必須有而且只有一位非零數字)。

%m.ne和%-m.ne,m、n及“-”字符含義與之前相同。此處n為指數的數字部分(又稱尾數)的小數位數。如省略n,則n=6。如省略m,則自動使m等於數據應有的長度,即m=7+n。

8)g格式符

        用來輸出實型數,它根據數值的大小,自動選f格式或e格式(選擇輸出時占寬度較小的一種),且不輸出無意義的零。

  例: 

      若f=123.468,則:

             printf(”%f,%e,%g”,f,f,f);

  輸出如下:

            123.468000,1.234680e+002,123.468

      用%f格式輸出占10列,用%e格式輸出占13列,用%g格式時,自動從前面兩種格式中選擇短者(今為%f格式為短),故選擇按%f格式輸出,且小數位中的最后三位為無意義的0,不輸出。%g格式用得比較少。

 

2)格式字符要用小寫字母,如%d不能寫成%D。

可以在printf函數中的“格式控制”字符串內包含轉義字符,如“\n”、“\t”、“\b” 、“\r”、“\f”、“\377”等,它們將按轉義字符意思輸出。

上面介紹的d、o、x、u、c、s、f、e、g等字符,如不是用在“%”后面就作為普通字符,原樣輸出。

如果想輸出字符“%”,可以在“格式控制”字符串中用連續兩個%表示,或者使用轉義字符“\45”。

不同的系統在格式輸出時,輸出結果可能會有一些小的差別,例如用%e格式符輸出實數時,有些系統輸出的指數部分為4位(如e+02)而不是5位(如e+002),前面數字的小數部分為5位而不是6位等等。

3getchar 函數

此函數的作用是從鍵盤輸入一個字符,並把這個字符作為函數的返回值。getchar函數沒有參數,其一般形式為:getchar()。

請注意,getchar()只能接受一個字符。getchar函數得到的字符可以賦給一個字符變量或整型變量。也可以不賦給任何變量。也可以作為表達式的一部分

在一個函數中調用getchar函數,應該在函數的前面(或本文件開頭)用:#include<stdio.h>

 

<4>scanf 函數

字符 

說明 

l

用於輸入長整數數據(可用%ld、%lo、%lx),以及double型數據(用%lf或%le) 

h

用於輸入短整型數據(可用%hd、%ho,%hx) 

m(正整數)

指定輸入數據所占寬度(列數)

 * 

表示本輸入項在讀入后不賦給相應的變量 

 

注意:    C語言在scanf中不使用%u格式符,對unsigned型數據,以%d、%o或%x 格式輸入。

可以指定輸入數據所占列數,系統自動按它截取所需數據。

%后的附加說明符”*”,用來表示跳過它相應的數據。

輸入數據時不能規定精度。

scanf函數中的“格式控制”后面應當是變量地址,而不應是變量名。

 如果在“格式控制”字符串中除了格式說明外還有其它字符,則在輸入數據時應輸入與這些字符相同的字符,即原樣輸入。

 在用“%c”格式輸入字符時,空格字符和“轉義字符”都作為有效字符輸入。

 

在輸入數據時,遇到以下情況時該數據認為結束:

        遇空格,或回車鍵或跳格鍵(tab鍵)。

    遇寬度結束時,如“%3d”,只取3列。

    遇非法輸入。1234a123o.26

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM