輸出與輸入(I/O).

Slides:



Advertisements
Similar presentations
CSIM, PU C Language Introduction to the C Programming Language 重覆敘述 (for,while,break,continue) 適合重複性的計算或判斷.
Advertisements

第一單元 建立java 程式.
計算機程式語言實習課.
Loops.
補充: Input from a text file
基本輸入與輸出 王振生.
Instructor:Po-Yu Kuo 教師:郭柏佑
C语言程序设计 第八章 函数.
程式設計 博碩文化出版發行.
第5章 基本輸入與輸出 5-1 程式的輸入與輸出 5-2 字元與字串的輸入 5-3 字元與字串的輸出 5-4 格式化資料的輸入
Do.For.While.正三角.倒正三角.倒九九乘法表
選擇排序法 通訊一甲 B 楊穎穆.
第3章 顺序结构程序设计 本章要点: 格式化输出函数──printf() 格式输入函数——scanf() 字符输出函数——putchar()
Chen Yi Fen The C Language Chen Yi Fen
2 C++ 程式概論 2.1 C++ 程式結構 程式註解 // 插入標題檔 #include 2-3
String C語言-字串.
If … else 選擇結構 P27.
C 程式設計— 語言簡介 台大資訊工程學系 資訊系統訓練班.
JAVA 程式設計與資料結構 第六章 輸出與輸入.
Introduction to the C Programming Language
Introduction to the C Programming Language
Java程式概觀.
C++ 程式設計— 語言簡介 台大資訊工程學系 資訊系統訓練班.
1. 檔案File  開新New  檔案Empty File (再另存新檔D:\hello.c)
Introduction to the C Programming Language
Chap 3 分支结构 3.1 简单的猜数游戏 3.2 四则运算 3.3 查询自动售货机中商品的价格.
第四章 C 语言中的输入和输出.
Introduction to the C Programming Language
計數式重複敘述 for 迴圈 P
第三章 顺序结构程序设计 主讲教师 贾月乐 电话:
第3章 顺序结构程序设计 为了让计算机处理各种数据,首先就应该把源数据输入到计算机中;计算机处理结束后,再将目标数据信息以人能够识别的方式输出。C语言中的输入输出操作,是由C语言编译系统提供的库函数来实现。 3.1 格式化输出——printf()函数 3.2 格式化输入——scanf()函数.
程式設計實習課(四) ----C 函數運用----
第七章 函数及变量存贮类型 7.1 函数基础与C程序结构 7.2 函数的定义和声明 7.3 函数的调用 7.4 函数的嵌套与递归
第4章 顺序程序设计.
第一單元 建立java 程式.
第0章作业: 教材P12-练习与实践 1.写出用符号’*’输出描绘汉字”大”的流程图。
第三章 資料型態與輸出控制 本章學習目標 認識Matlab的基本資料型態 練習資料型態的轉換 學習如何控制Matlab的輸出格式
C语言概述 第一章.
第3章 變數、算術運算、 數學函數及輸入輸出.
輸入&輸出 函數 P20~P21.
第九章 字串.
1.2 C语言程序的结构与书写规则 一、 C语言程序的总体结构
撰寫MATLAB基礎財務程式 柯婷瑱.
第11章 位运算 为了节省内存空间,在系统软件中常将多个标志状态简单地组合在一起,存储到一个字节(或字)中。C语言是为研制系统软件而设计的,所以她提供了实现将标志状态从标志字节中分离出来的位运算功能。 所谓位运算是指,按二进制位进行的运算。 11.1 数值在计算机中的表示 11.2.
挑戰C++程式語言 ──第8章 進一步談字元與字串
C语言程序设计 教案 崔武子制作
認識常數與變數 學習C++所提供的各種基本資料型態 瞭解溢位的發生 學習認識資料型態之間的轉換
Chap 5 函数 5.1 计算圆柱体积 5.2 使用函数编写程序 5.3 变量与函数.
輸出與輸入(I/O).
Introduction to the C Programming Language
挑戰C++程式語言 ──第7章 輸入與輸出.
流程控制:Switch-Case 94學年度第一學期‧資訊教育 東海大學物理系.
第三章 基本的輸出與輸入函數 (Basic Output & Input Function)
第四章 C 语言中的输入和输出.
第4章 顺序结构程序设计 为了让计算机处理各种数据,首先就应该把源数据输入到计算机中;计算机处理结束后,再将目标数据信息以人能够识别的方式输出。C语言中的输入输出操作,是由C语言编译系统提供的库函数来实现。 4.1 格式化输出——printf()函数 4.2 格式化输入——scanf()函数.
第3章 最简单的C程序设计 3.1 顺序程序设计举例 3.2 数据的表现形式及其运算 3.3 C语句 3.4 数据的输入输出.
Introduction to the C Programming Language
C/C++基礎程式設計班 字元與字串 講師:林業峻 CSIE, NTU 3/14, 2015.
適用於多選一 可減少if 與 else配對混淆的錯誤.
C/C++基礎程式設計班 C語言入門、變數、基本處理與輸入輸出 講師:林業峻 CSIE, NTU 3/7, 2015.
Programming & Language Telling the computer what to do
C 程式設計— 字元與字串 台大資訊工程學系 資訊系統訓練班.
第一次上機考參考答案 僅供參考,同學可自行再想更好的方法..
String類別 在C語言中提供兩種支援字串的方式 可以使用傳統以null結尾的字元陣列 使用string類別
變數與資料型態  綠園.
Array(陣列) Anny
C語言程式設計 老師:謝孟諺 助教:楊斯竣.
Introduction to the C Programming Language
隨機函數.
InputStreamReader Console Scanner
Presentation transcript:

輸出與輸入(I/O)

標準輸出與輸入 標準輸出(Standard Output, stdout): 將資料送到螢幕顯示. 標準輸入((Standard Input, stdin): 接收鍵盤輸入的資料. 類 型 函數名稱 說 明 標頭檔 標 準 輸 出 函 數 printf 最常見功能最強的格式化輸出函數 stdio.h puts 字串顯示函數 putchar 字元顯示函數 putch conio.h 輸 入 scanf 最常見功能最強的格式化輸入函數 gets 字串讀取的輸入函數 getchar 字元讀取的輸入函數 getche 單一字元直接讀取有顯示輸入函數 getch 單一字元直接讀取無顯示輸入函數

格式化輸出(printf函數) printf函數的作用是將欲顯示的訊息輸出至螢幕,使用語法如下: printf(“顯示字串"); 例如 : printf("Every day is working day."); printf("This number is 2."); 執行結果:

格式化輸出(printf函數)-不同型態資料顯示 各種資料型態的控制格式(格式碼)如下頁所示. 參數列: 欲輸出的資料的變數,常數或運算式 例如 : printf(“I have %d cats.”, num); printf(“This number is %d.”,2); printf(“%d”,1/3); 把變數num的內容以%d的格式替換到這兒 如果num=3,則結果為 I have 3 dogs. 結果為 This is number two: 2. 結果為 0

課堂練習 請使用Dev C++,並將以下的程試碼存檔並執行. #include<stdio.h> int main(void) { int a=2; int b=3; printf("I have %d dogs and %d cats\n", a, b); system(“pause"); return 0; } 執行結果如下所示: 可使執行結果容易觀看

格式化的輸入(scanf函數) scanf函數的作用是將鍵盤輸入的資料,指定為變數的值, 使用語法如下: 例如: #include<stdio.h> int main(void) { int x,y; printf("Please input two numbers:\n"); scanf("%d %d" ,&x, &y); printf("results:%d, %d",x,y); system("pause"); return 0; } /*兩個控制格式之間用空白隔開,故輸入整數時亦需用空白(或換行或Tab鍵)隔開,按Enter鍵,表示輸入完畢,則系統才會繼續執行.*/ 說明; & 為前導符號,是記憶位址表示器 &a 即代表變數a 的記憶體位址 可試試 P.10 練習1(小程式) scanf(“ %c”,&ch); 控制格式前,須有空白才能順利輸入字元 程式執行到此行,會等待使用者輸入兩個數字

格式化的輸入(scanf函數) 請試試看若是在輸入第一筆資料後,直接按下”Enter”鍵,會有什麼結果? #include<stdio.h> int main(void) { int x,y; printf("Please input two numbers:\n"); scanf("%d,%d",&x,&y); printf("results:%d,%d",x,y); system("pause"); return 0; }/*若以逗號隔開兩個輸入的格式碼,在輸入資料時,也必須以逗號來區隔*/ 請試試看若是在輸入第一筆資料後,直接按下”Enter”鍵,會有什麼結果? *scanf()在讀取數值時,會找到第1個非空白的字元,再讀取數值.

printf()與scanf()的控制格式對照表 資料型態 %c 字元 %d 十進位整數 %o 八進位整數 %x 十六進位整數 %s 字串 %f %e 浮點(小數點表示) %lf 倍精度浮點數(l為英文小寫字母) 浮點(指數e表示)

輸入字元的函數 字元資料輸入函數功能對照表 getch( ) getche( ) getchar( ) 只接受一個字元輸入 是 需按 Enter 鍵 不要 要 回應到螢幕上 無回應 回應 # include 所屬標題檔檔 conio.h stdio.h 函數的格式 變數=getch(); 變數=getche(); 變數=getchar(); getche():因為輸入字元後,馬上就會被接收. getchar(): get character,按下enter,此字元才會被變數接收. getchar 有時後須清buffer值,用fflush(stdin)函數. getche()代表從鍵盤按下一個字元時,此字元會echo至螢幕上,但是getch()並不會echo至螢幕上. conio:console input/output.

字元輸出的函數 字元輸出函數 putchar() 將指定的字元送到螢幕顯示,此函數屬於標準輸出入函數(stdio.h) 將指定的字元送到螢幕顯示,此函數屬於控制台的輸出入函數(conio.h) 函數格式為 putch(變數); *putchar(): put character

字元輸出函數----練習 /* 字元輸入與輸出函數的應用 */ #include <stdio.h> #include<conio.h> void main(void) { char ch1,ch2,ch3; printf(“Please enter two characters:\n”); /*請直接輸入兩個字元,輸入完即讀入buffer中*/ ch1=getche(); ch2=getche(); printf("\nThe first character is:\n"); /*顯示第一個字元*/ putchar(ch1); printf("\nThe second character is:\n"); /*顯示第二個字元*/ putchar(ch2); printf("\nPlease input a character:\n"); /*請再輸入一個字元,需按下enter之後才作讀取動作*/ ch3=getchar(); printf("\nThe third character is:\n"); putchar(ch3); printf("\n\n\n"); system("pause"); }

基本的輸出與輸入----範例2 #include <stdio.h> #include <stdlib.h> /* 輸入一個字元 ,顯示相對應的ASCII碼*/ #include <stdio.h> #include <stdlib.h> int main(void) { char ch; /* 宣告一個字元變數 */ /* 使用字元輸入格式符號輸入字元 */ printf("Please input a character: "); scanf("%c",&ch); /* 顯示輸入的字元與相對應之ASCII碼 */ printf("ch=%c , ASCII code is %d. \n", ch, ch); system("pause"); return 0; /* 程式正常結束 */ }

此時ch變數的內容為”enter”(換行字元)而不能再存入使用者要鍵入之字元 讀取字元的常見錯誤 #include<stdio.h> int main(void) { int num; char ch; printf("Please input a integer:\n"); scanf("%d",&num); printf("Please input a character:"); scanf("%c",&ch); printf("\nnum=%d,ASCII code of character=%d\n",num,ch); system("pause"); return 0; } 此時ch變數的內容為”enter”(換行字元)而不能再存入使用者要鍵入之字元 *當輸入數值:12時,執行結果為 Please input a integer:12 Please input a character:num=12, ASCII code of ch=10 *換行字元(ASCII碼為10)尚留在緩衝區,所以scanf()函數等不及使用者輸入,就先讀取此換行字元.

讀取字元的常見錯誤---解決之道 1.在scanf();中的%c之前留一個空白就可以跳過此換行字元. 2.使用fflush(stdio)函數來清除緩衝區的資料. #include<stdio.h> int main(void) { int num; char ch; printf("Please input a integer:\n"); scanf("%d",&num); fflush(stdin); printf("Please input a character:"); scanf("%c",&ch); printf("\nnum=%d,ASCII code of character=%d\n",num,ch); system("pause"); return 0; }

基本的輸出與輸入----範例3 #include <stdio.h> #include <stdlib.h> /* 輸入一個字串 */ #include <stdio.h> #include <stdlib.h> int main() { char name[10]; /* 宣告字元陣列 */ /* 使用字串輸入格式符號輸入字串 */ printf("What's your name: "); scanf("%s",&name); /*輸入字串,並由字元陣列name所接收*/ printf("Hi~ %s , How are you ?\n" , name); /*印出字串的內容*/ system("pause"); return 0; /* 程式正常結束 */ } 檔案名稱: io_03.C 執行結果: What’s your name:Alice Hi~ Alice, How are you?