Download presentation
Presentation is loading. Please wait.
1
第4章 字串及資料的輸入/輸出格式
2
本章的範例之一 範例4.1 talkback.c 使用陣列來處理字串。 使用%s來處理輸出、輸入字串。
使用scanf()函數時,前面必需加上一個&符號。 使用C的前置處理程式來定義DENSITY符號常數,並以此表示數值62.4。 使用C的strlen()函數來取得字串的長度。
3
字串的介紹 字串是由一個或多個字元所形成的。 “Zing went the strings of my heart !”
雙引號非字串的一部份,它是用來告訴編 譯程式:雙引號裡的內容是一個字串。
4
Char型態的陣列和NULL字元 Z i n g w e n t t h e s t r i n g s o f m y ! \0
每一格為一個位元組 Null字元 在儲存陣列字串的陣列當中,必需保留一個位置,用來儲存NULL,所以,陣列長度至少要比它所儲存的字串長度多一個字元。
5
什麼是陣列 可以被想像成一連串的記憶體位置,陣列是由某種特定型態的資料所組成的序列。 char name[40];
6
如何使用字串1 範例4.2 praise1.c 字串的輸入與輸出
7
如何使用字串2 當它讀到一個空的資料、跳格符號、或換行符號,就會停止讀取。 scanf()使用%S時,表示讀取一個字串。
8
strlen()知道什麼時候要停止計算字串長度
範例4.3 praise2.c 代表結束的null字元 5個字元 沒有功用的空間 T u f f y \0 strlen()知道什麼時候要停止計算字串長度
9
常數及C的前置處理程式 假設程式中有許多地方都使用同一常數,而現在必須更改常數的值(例如稅率),此時只要更改符號常數的定義即可,並不需要一一修改程式中使用了此常數的所有敘述。 範例4.4 pizza.c
10
#define也可以用在字元及字串方面的函數:字元會配合單引號使用,而字串配合雙引號來使用。
符號常數名稱的命名規則和變數名稱的命名規則是一樣的。
11
const 修飾符號 也可利用const產生符號常數 const int MONTHS = 12; 如此一來,MONTHS會變成一個唯讀的數值,您可以輸出MONYHS,或在運算式中使用它,不過就是不能改變MONTHS的值。
12
符號常數 C的limits.h和float.h標頭檔,分別提供關於整數型態和浮點數型態的大小詳細限制,這些檔案定義了許多實作上會運用到的符號常數。 表4.1為在limits.h中所定義的一些常數。 表4.2為float.h中所定義的一些常數。
13
探索及使用printf()和scanf()
printf()和scanf()函數可用來跟程式溝通,它們稱為輸入/輸出函數(Input/Output function),或簡稱I/O函數(I/O function)。
14
printf()函數 使用printf()來輸出變數時,必須傳給printf()一個變數型態。例如整數使用%d,輸出字元時則使用%c。
表4.3 轉換規格符號及其輸出結果。
15
使用printf() printf("you look great in %s\n",color);
16
在printf()中轉換規格符號的修飾字元
表4.4 、4.5列出可使用的修飾字元。 常用的有以下幾種: 數字:例如%4d 要顯示的數字或字串長度限制。 旗標:例如%-20s字串靠左對齊。 l : 例如:%ld,可表示long int。
17
scanf()函數 Scanf()可將輸入的字串轉成許多不同的形式,例如整數、浮點數、字元或字串,他所作的工作剛好和printf()相反,printf()是把整數、浮點數、字元和字串都轉成文字,然後再輸出到螢幕上。 使用scanf()讀取資料,並指定給變數時,只要再變數名稱前加上一個&即可。
18
scanf()函數 範例4.14 input.c scanf()函數使用空白符號(換行字元、跳格字元、和空白字元)來區分輸入資料。
19
格式串列中固定的字元 如果不小心將逗號放在兩個轉換符號中間,如下: scanf(“%d,%d”,&n,&m);
20
printf()的修飾字元* 假設不想立刻在程式裡設定輸入的最大長度,而是要稍後再作設定的話,此時可在轉換符號裡使用*,不過還是必須以傳參數的方式告訴printf()最大的輸入長度是多少;也就是說,當使用%*d時,後面的參數必須指定*的數值和d所需要的數值,這種方式也可用於浮點數,以這種方式可設定其精確度,如範例4.15。
21
Scanf()的修飾字元* 在scanf()中使用*效果就不同了;在%和轉換字母間加入*,將會造成函數洛過所對應的輸入資料,如範例4.16所示。
Similar presentations