Instructor:Po-Yu Kuo 教師:郭柏佑 EL 1009 計算機概論 (電子一B) Introduction to Computer Science Ch. 3 基本輸出與輸入的方法 Instructor:Po-Yu Kuo 教師:郭柏佑
本章簡介 寫程式一個很基本的技巧, 就是如何從鍵盤輸入資料以及從螢幕輸出結果。 C 語言函式庫中有不少輸出 / 入相關函式。 以下將會說明較常用到的輸出及輸入函式。 從螢幕輸出。 從鍵盤輸入。
從螢幕輸出 printf ():函數名稱取 print 以及 format 兩個字組成。 此函式會將我們指定的字串以指定的格式輸出在螢幕上。 putchar ():函數名稱取 put 以及 character 兩個字組成。 此函式的用途是輸出字元, 而且一次只能輸出一個字元。
從鍵盤輸入 scanf ():函式名稱取 scan 以及 format 兩個字組成。 使用者以鍵盤輸入資料後, 需按下 “Enter” 鍵,函式會將資料讀進程式中處理。 getchar () :函式名稱取 get 以及 character 兩個字組成。 在輸入資料後按按下 “Enter” 鍵, 此函式會讀取資料的第 1 個字元進程式處理。
從鍵盤輸入 getche ():函式名稱取 get、character 以及 echo 組成。 從鍵盤輸入一個字元後, 函式會馬上讀取而不需要按“Enter” 鍵。
螢幕顯示與輸出格式
3-1-1 printf() 的輸出格式控制 printf() 的輸出格式控制
3-1-1 printf() 的輸出格式控制
3-1-1 printf() 的輸出格式控制
3-1-1 printf() 的輸出格式控制
3-1-1 printf() 的輸出格式控制
3-1-1 printf() 的輸出格式控制
3-1-1 printf() 的輸出格式控制
3-1-1 printf() 的輸出格式控制 輸出格式的應用:8 進位與 16 進位
3-1-1 printf() 的輸出格式控制 輸出格式的應用:8 進位與 16 進位
3-1-1 printf() 的輸出格式控制 輸出格式的應用:8 進位與 16 進位
3-1-1 printf() 的輸出格式控制 輸出格式的應用:不同的浮點數表示法
3-1-1 printf() 的輸出格式控制 輸出算式結果 printf() 不只可輸出變數值, 更可以輸出算式的運算結果。 但提醒您要注意指定算式的輸出格式時, 必須能符合運算結果的資料型別
3-1-2 輸出格式的參數
3-1-2 輸出格式的參數 1. 指定固定寬度的輸出欄位 整數的設定方式:直接以數字指定寬度 浮點數的設定方式:可同時指定整數部分和小數部分的位數, 其間以小數點隔開
3-1-2 輸出格式的參數
3-1-2 輸出格式的參數
3-1-2 輸出格式的參數 2. 正負號也會佔用 1 個字元
3-1-2 輸出格式的參數 2. 正負號也會佔用 1 個字元
3-1-2 輸出格式的參數 3. 自動調整不足的欄位
3-1-2 輸出格式的參數 4. 使用 - 參數時, 數值向左靠齊
3-1-2 輸出格式的參數 5. 格式控制符號中參數的順序
3-1-2 輸出格式的參數 5. 格式控制符號中參數的順序
3-1-3 使用 Escape Sequence 控制輸出
3-1-3 使用 Escape Sequence 控制輸出
3-1-3 使用 Escape Sequence 控制輸出 換行
3-1-3 使用 Escape Sequence 控制輸出
3-1-3 使用 Escape Sequence 控制輸出 刪除字元和結束字元
3-1-3 使用 Escape Sequence 控制輸出 輸出單、雙引號與反斜線
3-1-4 使用 putchar() 函式輸出單一字元
鍵盤輸入與格式設定
3-2-1 格式化輸入函式:scanf() 函式 輸入格式 中可使用 printf() 輸出用的格式 (如 %d、%f...), 配合 scanf() 使用時, 就變成輸入格式 &變數名稱:用來接受輸入值, & 表示取得變數在記憶體的位址。
3-2-1 格式化輸入函式:scanf() 函式
3-2-1 格式化輸入函式:scanf() 函式 輸入數值與輸入格式要相符
3-2-1 格式化輸入函式:scanf() 函式 輸入數值與輸入格式要相符
3-2-2 由鍵盤輸入單一字元:getchar( ) 函式
3-2-3 無緩衝式輸入:getche() 和 getch() 函式
嵌入式系統的輸出入方式
3-3-1 使用標準輸出入裝置 UART 又稱通用非同步接收傳送器 3-3-1 使用標準輸出入裝置 UART 又稱通用非同步接收傳送器 是一種利用接收 (通常寫成 RX)、傳送 (通常寫成 TX) 2 條線路建立的通訊介面
3-3-2 使用其它方式做文字輸出入 有些平台不一定完整支援標準輸出入的功能, 但仍能利用廠商自訂的輸出入函式, 透過 UART 進行輸出、輸入的工作 輸出訊息到電腦等場合, 通常會用到標準函式庫的 sprintf() 等輸出函式, 此函式和 printf() 類似可做格式化輸出, 但它不會輸出到 stdout 裝置, 而是將輸出結果存到字串中
3-3-3 使用其它輸出入裝置 部分產品只有一些特定的按鈕、燈號等元件, 這時候按鈕、 LED 燈就是 MCU 的輸入裝置和輸出裝置 程式會直接對連接按鈕、LED 的 MCU 腳位 (Pin) 進行讀取或寫入的控制
3-3-3 使用其它輸出入裝置 在寫入 MCU 各種輸出入暫存器時, 並不會直接將輸入值寫入 要維持其它輸出入腳位狀態, 又要將指定的位元寫入新的值, 就會用到位元運算的技巧
綜合演練
將兩個數作交換(不可使用暫存變數) 試寫一程式, 讓使用者從鍵盤輸入2個整數, 然後將兩個整數作交換, 並在螢幕上印出, 記住不可使用任何暫存變數。 #include<stdio.h> #include<conio.h> void main() { int a,b; printf("Enter two value a and b: "); scanf("%d %d",&a,&b); printf("Before swap:\n"); printf("a = %d\n",a); printf("b = %d\n",b); …… 說明: 執行結果 Enter two value a and b: 12 25 Before swap: a = 12 b = 25 After swap: a = 25 b = 12 變數a和b的值必須作交換。
由鍵盤輸入密碼的程式(印出*符號) 試寫一程式, 從鍵盤輸入4位數字, 當使用者輸入1個數字時, 螢幕輸出 ’*’ 。當輸入完成後, 螢幕立即輸出4位數字 。 說明: 執行結果 Please input 4 digit number: **** The number you typed is 1234. 使用者輸入時, 數字會被隱藏起來並印出’*’的符號。當輸入完成後, 再印出4位數字。