第4章 字串及資料的輸入/輸出格式 - PowerPoint PPT Presentation

hope
slide1 n.
Skip this Video
Loading SlideShow in 5 Seconds..
第4章 字串及資料的輸入/輸出格式 PowerPoint Presentation
Download Presentation
第4章 字串及資料的輸入/輸出格式

play fullscreen
1 / 21
Download Presentation
第4章 字串及資料的輸入/輸出格式
158 Views
Download Presentation

第4章 字串及資料的輸入/輸出格式

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. 第4章 字串及資料的輸入/輸出格式

  2. 本章的範例之一 範例4.1 talkback.c • 使用陣列來處理字串。 • 使用%s來處理輸出、輸入字串。 • 使用scanf()函數時,前面必需加上一個&符號。 • 使用C的前置處理程式來定義DENSITY符號常數,並以此表示數值62.4。 • 使用C的strlen()函數來取得字串的長度。

  3. 字串的介紹 字串是由一個或多個字元所形成的。 “Zing went the strings of my heart !” 雙引號非字串的一部份,它是用來告訴編 譯程式:雙引號裡的內容是一個字串。

  4. Z i n g w e n t t h e s t r i n g s o f m y ! \0 Char型態的陣列和NULL字元 每一格為一個位元組 Null字元 在儲存陣列字串的陣列當中,必需保留一個位置,用來儲存NULL,所以,陣列長度至少要比它所儲存的字串長度多一個字元。

  5. 什麼是陣列 • 可以被想像成一連串的記憶體位置,陣列是由某種特定型態的資料所組成的序列。 char name[40];

  6. 如何使用字串1 • 範例4.2 praise1.c字串的輸入與輸出

  7. 如何使用字串2 • 當它讀到一個空的資料、跳格符號、或換行符號,就會停止讀取。 • scanf()使用%S時,表示讀取一個字串。

  8. strlen()函數 • strlen()函數可回傳字串中有多少字元。 範例4.3 praise2.c 代表結束的null字元 5個字元 沒有功用的空間 T u f f y \0 strlen()知道什麼時候要停止計算字串長度

  9. 常數及C的前置處理程式 • 假設程式中有許多地方都使用同一常數,而現在必須更改常數的值(例如稅率),此時只要更改符號常數的定義即可,並不需要一一修改程式中使用了此常數的所有敘述。範例4.4 pizza.c

  10. #define也可以用在字元及字串方面的函數:字元會配合單引號使用,而字串配合雙引號來使用。#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.cscanf()函數使用空白符號(換行字元、跳格字元、和空白字元)來區分輸入資料。

  19. 格式串列中固定的字元 • 如果不小心將逗號放在兩個轉換符號中間,如下: scanf(“%d,%d”,&n,&m); 此時scanf將認定輸入方式為先輸入一個數字,再輸入一個逗號,最後再輸入第二個數字。

  20. printf()的修飾字元* • 假設不想立刻在程式裡設定輸入的最大長度,而是要稍後再作設定的話,此時可在轉換符號裡使用*,不過還是必須以傳參數的方式告訴printf()最大的輸入長度是多少;也就是說,當使用%*d時,後面的參數必須指定*的數值和d所需要的數值,這種方式也可用於浮點數,以這種方式可設定其精確度,如範例4.15。

  21. Scanf()的修飾字元* • 在scanf()中使用*效果就不同了;在%和轉換字母間加入*,將會造成函數洛過所對應的輸入資料,如範例4.16所示。