Microsoft PowerPoint - chap3

Similar documents
Microsoft PowerPoint - CH02 Introduction to C++ Programming_輸入與輸出 [相容模式]

Microsoft Word - Chap02.doc

840 提示 Excel - Excel -- Excel (=) Excel ch0.xlsx H5 =D5+E5+F5+G5 (=) = - Excel 00

C 語言—陣列及字串

C/C++基礎程式設計班

0 0 = 1 0 = 0 1 = = 1 1 = 0 0 = 1

C/C++基礎程式設計班

Microsoft Word - 投影片ch03

Java 程式設計初階 第 5 章:基本輸出入 & 流程控制

Java 程式設計入門

CC213

Microsoft Word C-A卷.docx

Microsoft Word - ACI chapter00-1ed.docx

資料結構之C語言重點複習

Microsoft PowerPoint - ICP_02_Basic_Data_Type.ppt [相容模式]

untitled

程式基礎之字串函數與處理篇 前言 無論是在現實世界或是網路世界, 文字都是我們溝通的方式之一 在資訊的世界裡面, 怎麼利用程式把文字照自己想要的方式呈現就是個很基本也很重要的技術 但我們可能會發現, 許多文字處理要做的事情都很類似 ( 例如把兩個字串接在一起, 或是照特定格式輸出 ), 因此在 C

Microsoft Word - ACG chapter00c-3ed.docx

Microsoft Word - CS-981.doc

鋼結構在綠建築發展趨勢中之綜合評價

投影片 1

VB.Net

PowerPoint Presentation

PowerPoint Presentation

Microsoft PowerPoint - Class4.pptx

Microsoft Word - 4.doc

封面-12

Microsoft PowerPoint - 07b1 Max and Sum.ppt [相容模式]

碩命題橫式

投影片 1

第四單元 運算式與流程控制 單元目標 當完成本單元後, 你將能學習到 : 認識 Java 基本資料型態使用基本資料型態與參考資料型態使用 String 類別與 StringBuffer 類別利用 Java 運算子建構算術運算式與邏輯運算式描述轉型 (casting) 與晉升 (promotion)

Microsoft PowerPoint - STU_C_Lang_CH13.ppt

Microsoft Word - ACL chapter02-5ed.docx

AutoCAD 用戶如何使用 ArchiCAD


!49 第 二講 資料型態 運算子與表示式 講師 : 李根逸 (Ken-Yi Lee),

Microsoft Word - _m30.doc

Microsoft Word - DA 資料處理-講義-01

!194 課程 大綱 陣列介紹 [P.195] 陣列的使 用 [1] - 多個同型變數 [P.196] 陣列的初始化 [P.198] 陣列的使 用 [2] - 循序存取 [P.199] 陣列的使 用 [3] - 隨機存取 [P.200] 陣列的複製 [P.203] 在函式間傳送陣列 [P.204]

Microsoft Word - ch 校.doc

(Microsoft Word - eval\251Mresult\252\272\245\316\252k.doc)

个 小 小 的 乡 下 人 木 匠 的 儿 子, 竟 然 有 这 么 大 的 力 量 其 实 就 是 这 点, 祂 活 出 来 的 那 种 爱, 是 世 界 上 没 有 的 祂 活 出 来 的 爱 是 世 界 上 的 人 都 需 要 的, 但 却 是 人 人 在 这 个 世 界 上 都 得 不 到

2013年度西藏自治区教育厅

實用文格式大全.doc

薛 秦 高 继 宁 宋 明 锁 文 洪 梁 瑞 敏 贾 跃 进 内 蒙 古 自 治 区 (3 人 ) 琪 格 其 图 米 子 良 赵 震 生 辽 宁 省 (8 人 ) 田 素 琴 白 凤 鸣 肖 瑞 崇 黄 恩 申 白 长 川 杨 世 勇 李 敬 林 王 秀 云 吉 林 省 (5 人 ) 赵 继 福

Python a p p l e b e a r c Fruit Animal a p p l e b e a r c 2-2

桌上型個人電腦採購規格說明表

The return of scanf The number of fields successfully converted and assigned int a =1, b =2, c =3; int n = scanf("%d %d %d", &a, &b, &c); printf("%d\n

Microsoft PowerPoint - C-Ch12.ppt

Writer範本

運算子多載 Operator Overloading

<4D F736F F D20A7EBBCD0B6B7AABEAAFEA5F3322D3935A67EB2C432A6B8B2C433B2D5C5E3A5DCA564B357BD64AED12E646F63>


桌上型個人電腦採購規格說明表

Microsoft Word - LP doc

主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new

000

Microsoft PowerPoint - Class2.pptx

C. p->data.a D. p.data.a 5 若需建立如圖所示的儲存結構, 以下正確的語法組是 : G q p c A. char **q, *p, c; p=&c; q=*p; C. char **q, *p, c; p=&c; q=&p; B. char *q, *p, c; p=&c;

街街街街街街街街

Microsoft PowerPoint - Chapter3

2016 年 地 质 工 程 系 教 学 工 作 安 排 2016 学 年 我 系 将 在 总 结 过 去 工 作 的 基 础 上, 结 合 今 年 学 院 以 抓 质 量 强 内 涵 促 改 革 调 结 构 建 品 牌 细 管 理 重 过 程 为 宗 旨, 以 规 范 管 理 深 化 内 涵 为

<4D F736F F D203136BCADBBD8D2E4D3EBD1D0BEBF2E646F63>

萧山中学课程建设方案.doc


Microsoft Word - 9pinggb_A4.doc

Microsoft Word - 9pinggb_A4-f4.doc

理 论 探 索 事 业 单 位 改 革 的 五 点 思 考 余 路 [ 摘 要 ] 事 业 单 位 改 革 是 中 国 改 革 的 重 要 环 节, 其 影 响 力 和 难 度 不 亚 于 国 有 企 业 改 革 本 文 着 重 围 绕 推 进 事 业 单 位 改 革 应 考 虑 的 五 个 方 面

日 本 位 于 亚 洲 东 部, 太 平 洋 西 北 角, 是 我 国 东 方 的 一 个 岛 国 在 洪 积 世 ( 注 1) 的 大 部 分 时 期 内, 日 本 与 大 陆 相 连 大 约 在 洪 积 世 晚 期 至 冲 积 世 ( 注 2) 初 期, 日 本 各 地 发 生 海 进, 出 现

2深化教育教学改革、创新人才培养模式


Microsoft Word - 9pinggb_let.doc

实 习 上 下 点 表 格 解 释 和 相 关 纪 律 要 求 : 1 表 格 中 所 有 名 词 都 为 简 称, 包 括 医 院 名 称 四 年 级 五 年 级 各 专 业 名 称 等 所 有 时 间 都 为 学 生 装 好 行 李 出 发 时 间, 请 提 前 0 分 钟 将 行 李 运 到

简报158期.doc

Microsoft Word - 9pingb5_let.doc

退休權益.ppt [相容模式]

Microsoft Word - 1.《國文》試題評析.doc

Ps22Pdf

$%%& ()*+, %&, %-&&%%,. $ %,, $,, & /$- 0(1 $%%& %& 234 %-%, 5&%6&633 & 3%%, 3-%, %643 -%%% :::; 7<9; %-%, 3$%$ :::;

# $# #!# # # # # # # %# # # &# # # # #! "

zt

3 基 金 杠 杆 从 分 级 基 金 的 概 念, 我 们 知 道 了 分 级 基 金 的 A 份 额 是 每 年 获 得 固 定 收 益 的 稳 健 份 额,B 份 额 是 具 有 杠 杆 效 应 的 激 进 份 额 分 级 基 金 中 的 杠 杆 一 般 有 三 类 : 份 额 杠 杆 =(A

桌上型個人電腦採購規格說明表

電腦設備LP 第七組顯示卡規範書

單步除錯 (1/10) 打開 Android Studio, 點選 Start a new Android Studio project 建立專案 Application name 輸入 BMI 點下 Next 2 P a g e

Microsoft PowerPoint - chap8.ppt

Microsoft PowerPoint - 07-overloaded.ppt

(Microsoft Word - wes _\246p\246\363\250\317\245\316LED\277O\305\343\245\334\252\254\272A.doc)

Microsoft PowerPoint - VB14.ppt

投影片 1

Microsoft PowerPoint - chap12.ppt

Microsoft PowerPoint - 3C¬ì§Þ»P¥Í¬¡-chapter2

電腦設備LP _第七組顯示卡規範書

Introduction to C Programming

2. S 輸入一個整數 n, 求出從 1 ~ n 所有可以被 3 整除及又可以被 7 整除所有 的數字的總和的程式 ( 請上傳 Sum_3_7.py 檔 ) Sum_3_7.py 程式樣版 n = int(input()

1 式子的運算 19 例 1 解 符號的簡記 ( 乘法 ) 1x 4x x 5 1xx 4x4x x 5 5 x 5 x 5x 除以一個不為 0 的數就是乘以該數的倒數 P5 1 1 x x 5 5 x 4 x 4 x 可視為 x 1x4 x 1 4 x4x x x 4 x x x

Microsoft PowerPoint - sql2005_ch09.ppt

CC213

ACI pdf

プログラムの設計と実現II

Transcription:

第三章基本輸出與輸入的方法 資訊科技系 林偉川 本章簡介 如何從鍵盤輸入資料以及從螢幕輸出結果, 是寫程式一個很基本的技巧, 因為這也是使用者與電腦交談的重要橋樑 在 C 語言函式庫中有不少輸出 / 入相關函式, 不過較常用到的也只有其中幾個 從螢幕輸出類 : 由鍵盤輸入類 : 2 1

從螢幕輸出類 printf(): 函數名稱取 print 以及 format 兩個字組成 此函式會將我們指定的字串以指定的格式輸出在螢幕上 putchar(): 函數名稱取 put 以及 character 兩個字組成 如名稱所示, 此函式的用途是輸出字元, 而且一次只能輸出一個字元, 也不具備像 printf () 的格式化輸出功能 3 由鍵盤輸入類 scanf(): 函式名稱取 scan 以及 format 兩個字組成 使用者以鍵盤輸入資料後, 需按下 [Enter] 鍵, 函式會將資料讀進程式中處理 getchar(): 函式名稱取 get 以及 character 兩個字組成 同樣在輸入資料後按下 [Enter] 鍵, 此函式會讀取資料的第 1 個字元進程式處理 getche(): 函式名稱取 get character 以及 echo 組成 表示由從鍵盤輸入一個字元後, 函式會馬上讀取而不需要按下 [Enter] 鍵 4 2

由螢幕輸出 :printf() 函式 字串輸出 控制輸出格式 輸出格式的參數 使用 Escape Sequence 控制輸出 5 字串輸出 printf () 函式會將其括號中的雙引號內 ("...") 的字串忠實印出 : 6 3

控制輸出格式 資料的型別有很多種, 如整數 浮點數 字元等等 而使用 printf (...) 函式輸出時, 也可在要輸出的字串 "..." 之中, 以便將不同型別的變數值正確地輸出 "..." 稱為格式化字串, 因為其中的字串, 可包含控制輸出格式的控制符號 這些控制符號是以 '%' 為開頭, 先來看以下整理出來的輸出格式表 : 7 輸出格式表 8 4

呼叫 printf () 函式的語法 輸出格式 : 以 % 開頭的控制符號, 如 %d %f... 均需放在雙引號 " " 裡 : 變數名稱 : 此變數的值, 會依序對應至 "... " 中的輸出格式, 並按照指定格式顯示在螢幕上 9 輸出格式與輸出結果的關係 10 5

輸出格式與輸出結果的關係 11 利用一個 printf ( ) 輸出兩個變數值 12 6

輸出格式的應用 : 與字串結合 當我們利用 printf () 的控制符號輸出變數值時, 也可在 "..." 中加入其它說明文字 這些文字都會依原本的內容顯示出來 : 13 從螢幕輸出數羊的字串 14 7

執行結果 比對執行結果各行的輸出字串為 : 1. 第 8 行 : 第 1 隻羊... 控制符號 %d 會輸出整數型別的變數 n1=1 的值 2. 第 9 行 : 第 2 隻羊... 控制符號 %d 會輸出整數型別的變數 n2=2 的值 15 執行結果 3. 第 10 行 : 第 x 隻羊... 控制符號 %c 會輸出字元型別的變數 nx= 'x' 的值 4. 第 11 行 : 第 1x 隻羊... 控制符號 %d %c 會輸出 n1=1 與 nx= 'x' 的值, 且把兩個數值並在一起 5. 第 12 行 : 第 2x 隻羊... 控制符號 %d %c 會輸出 n2=2 與 nx= 'x' 的值, 且把兩個數值並在一起 16 8

執行結果 6. 第 13 行 : 第 xxx 隻羊... 控制符號 %c %c %c 會輸出字元型別的變數 nx= 'x', 因為變數 nx 出現了 3 次, 所以會輸出 3 次的變數值, 而且會把 3 個數值並在一起 7. 第 14 行 : 睡著了...zzz 控制符號 %c 會輸出字元型別的變數 nx= 'x' 的值 17 輸出格式的應用 :8 進位與 16 進位 利用控制符號 %d %o 以及 %x 可以將整數以非十進位的方式輸出 : int digit=10; printf( %o \t %x\n,digit, digit); //12 a 18 9

不同進位制的轉換 19 執行結果 第 7 8 行, %d 會將變數值以十進位的格式從螢幕輸出 第 9 行, %o 會將變數值以八進位的格式從螢幕輸出 第 10 行, %x 會將變數值以十六進位的格式從螢幕輸出 20 10

輸出格式的應用 : 不同的浮點數表示法 用於輸出浮點數的 %f 與 %e 分別表示以 一般小數表示法 或 科學符號表示法 來輸出浮點數型別的數值 : 21 從螢幕輸出浮點數 22 11

輸出算式的結果 輸出格式符號 : 就是 %d %f... 等 算式 : 可填入一般算式, 如 a+b a/b... 等 : printf( %d,a+b); 23 從螢幕輸出兩數值的和 24 12

指定固定寬度的輸出欄位 整數的設定方式 : 直接以數字指定寬度, 例如 %8d 表示輸出的寬度為 8 個字元, 若變數值不到 8 位數, 則輸出時預設向右對齊, 前面多的位置留空 浮點數的設定方式 : 可同時指定整數部分和小數部分的位數, 其間以小數點隔開, 例如 %4.3f 25 指定固定寬度的輸出欄位 指定位數時, 可在數字前加上 0, 表示多出的位置都填上 0 26 13

指定變數輸出時的寬度 27 執行結果 28 14

正負號也會佔用 1 個字元 (+) 29 自動調整不足的欄位 30 15

數值向左靠齊 (-) 當輸出格式中有使用 - 參數時, 不管此時設定的固定欄位數為何, 也不管是否在空白欄位補 0 與否 輸出的數字一律向左靠齊, 也就是說, 數值的最高位會在正負號 ( 如果存在 ) 後的第 1 位 printf( %-6d,-123); -123 31 加上參數 - 的輸出結果 32 16

使用兩個以上參數的順序 如果要使用兩個以上的參數, 順序如下 : 如以下範例 : 33 使用兩個以上參數的順序 34 17

使用 Escape Sequence 控制輸出 Escape Sequence 一般譯為逸出序列或跳脫序例, 是一個 命令, 然後依該命令的指示, 進行相關的輸出 C 語言的 Escape Sequence 都是以反斜線 (\) 為開頭 : 35 Escape Sequence 控制輸出表 36 18

刪除字元和結束字元 '\b' 會使輸出的字串由 '\b' 的位置開始, 向左刪除一個字元 '\r' 則會從所在位置開始, 把前面的字元都刪除 '\0' 為字串的結束字元, 看到它就表示 : 這個字串已到結尾了 所以跟在 \0 後面的字元都會被忽略而不會被輸出 如以下程式 : 37 練習刪除字元 38 19

輸出單 雙引號與反斜線 因為單 雙引號與反斜線在 C 語言中有特殊用途, 所以這些字元出現在 printf () 的雙引號內, 也無法順利的被輸出到螢幕 因此如果有需要輸出這些符號時, 可使用 \' \" \\: 39 輸出單 雙引號與反斜線 40 20

從螢幕輸出單一字元 :putchar () 函式 putchar () 函式可輸出一個字元, 若引數是數字, 則根據 ASCII 碼將該數字轉換成字元後, 從螢幕輸出 如以下範例中, 我們把 putchar () 括號內加上不同引數後的各種輸出作一整理 : 41 putchar () 從螢幕輸出字元 42 21

執行結果 43 執行結果 第 7 行, 變數 n 的初始值為 100, putchar (n) 會從螢幕輸出 100 的 ASCII 對照字元值 d 第 9 行, putchar (100) 直接用常數 100, 從螢幕輸出結果與 putchar (n) 相同 第 8, 10, 11 行, putchar ('\n') 或 printf ("\n") 使用 Escape Sequence \n, 從螢幕輸出結果產生了換行的效果 第 12 行, putchar ('n') 使用 'n', 以單引號括住 n 代表的意義不再是變數 n 而是字元 n 所以, 從螢幕輸出結果會印出字元 n 44 22

從鍵盤輸入的數值 格式化輸入函式 :scanf() 函式 scanf() 可以配合各種輸入格式控制字元, 讀取任何型別的資料, 也是最常用的鍵盤輸入函式 由鍵盤輸入單一字元 :getchar() 函式 不需要按 [Enter] 鍵的鍵盤輸入 :getche() 函式 不顯示的鍵盤輸入 :getch() 函式 45 scanf () 的格式 使用 scanf() 的格式如下 : scanf( 輸入格式,& 變數名稱 ); 輸入格式 : 與 printf() 的輸出格式 ( 如 %d %f...) 相同, 配合 scanf() 使用時, 就變成輸入格式 & 變數名稱 : 用來接受輸入值, & 表示取得變數在記憶體的位址 使用 scanf() 函式時, 用來接受輸入值的變數名稱前一定要加 & 46 23

scanf () 的格式 scanf () 可以搭配控制符號 % 來決定由鍵盤輸入的格式, 也就是說 scanf () 可以接受任何型別的輸入值 : 47 求兩個數值的和 48 24

執行結果 當 scanf () 一次讀取兩個數值時, 可以在 2 個數值間留一空白字元的方式輸入, 或者分 2 行輸入 輸入完畢記得按下 [Enter] 鍵, 在完成輸入第二個數值前, 按下 [Enter] 鍵只會產生換行的效果, 不會有下一步的執行動作 49 scanf () 由鍵盤輸入輸出 50 25

如果輸入數值的型別與 scanf() 所設的格式不符 該值會被強制轉型為符合 scanf() 所設型別 如果輸入的值不為整數, 仍然會被當整數型別處理 執行結果 51 由鍵盤輸入單一字元 :getchar() 函式 getchar() 是專門為了讀取字元而設的函式 getchar() 的括號內, 不用加任何引數, 因為不管輸入值為何, 此函式一律以字元的型別讀取, 而且只讀取一個字元, 即使輸入多個字元, getchar() 也只會讀到第一個字元 getchar() 所讀到的字元, 會當成函式的傳回值傳回, 因此我們可將這個傳回值指定給一個變數, 或是如下的範例直接使用 : 52 26

getchar() 讀取字元 53 執行結果 第 7 行中, printf () 函式會直接從螢幕輸出 getchar () 函式對傳回值, 也就是直接輸出我們輸入的第一個字元 54 27

從螢幕顯示由鍵盤輸入的數值 可以用 putchar() 從螢幕輸出 getchar() 的結果 因為兩者都是用來處理單一的字元 首先, 宣告一個字元變數, 將 getchar() 讀到的字元傳入字元變數中, 然後再利用 putchar() 從螢幕輸出 : 55 從螢幕顯示由鍵盤輸入的數值 56 28

不需要按 Enter 鍵盤輸入 :getche() 函式 getche() 也是一個讀取單一字元的函式 但它與 getchar() 函式不同 : 使用 getche() 函式時, 只要一輸入字元, 馬上就會被接收處理, 而不需要按下 [Enter] 鍵 舉個例子來說明 : 57 getche() 鍵盤輸入即時處理 58 29

不顯示的鍵盤輸入 :getch() 函式 getch() 函式具有 getche() 的功能, 也就是說會立即取得鍵盤輸入 除此之外使用 getch() 讀取鍵盤輸入時, 不會在螢幕上看到輸入的字元, 因此要將由 getche() 讀到的字元自動回應到螢幕上, 還得自行用 printf() putchar() 等函式將該字元輸出 參考以下範例 : 59 getch () 不會顯示輸入字元即時處理 60 30

綜合演練 印出簡單的圖形 由鍵盤輸入數值作運算 數字轉換成字元 : 利用輸出格式 61 利用 printf () 的輸出功能可印出簡單的圖形, 下面的例子就是用 * 符號印出菱形 : 印出簡單的圖形 62 31

由鍵盤輸入數值作運算 63 數字轉換成字元 : 利用輸出格式 64 32

數字轉換成字元 : 利用 putchar () 函式 65 除錯 getchar(i); scanf(&x); printf( bal=%d6,bal); putchar( \n ); 66 33

執行結果 執行結果為何? int a=14; float b=1.4; printf( %5d,a); // 14 printf( %05d,a); //00014 printf( %+06d,a); //+00014 printf( %-6d,a); //14 printf( %6.2f,b); // 1.40 printf( %06.2f,b); // 001.40 printf( %+06.2f,b);//+01.40 int i; i=getchar(); // 輸入 12345 printf( %c,i); 67 作業 試寫一程式輸入 x y z 之值, 算出 f(x,y,z)=3x+3y-z 之值 試寫一程式輸入一浮點數, 設定輸出寬度為整數和小數各 5 個字元, 多出未用的位數補零, 並顯示出正負號 試寫一程式輸入一整數後, 轉成八進位與十六進位輸出 試寫一程式輸入一整數攝氏度數後, 算出其相對的整數華氏度數 試寫一程式輸入兩整數後, 印出互換後的值 68 34