C語言多組輸入 c++如何實現多組輸入



文章插圖
C語言多組輸入 c++如何實現多組輸入

文章插圖
I/O的定義
I/O是計算機系統一個重要的組成部分 , 計算機系統接受Input(輸入數據) , 經過CPU運算處理之后 , Output(輸出數據) 。
所以 , I/O是一個很重要的概念 ?,F在剛剛開始學習C語言編程 , 由淺入深 , 上面剛剛講解到終端的一個I/O操作 。編寫一個程序 , 可以從終端接收用戶輸入數據 , 然后 , 再輸出到終端 。
scanf函數
C語言提供了scanf函數 , 用于給程序輸入數據 。用戶可以通過鍵盤 , 給指定的變量輸入數據 。printf函數是給終端輸出數據 , scanf函數是從終端接收(獲?。┯脩舻妮斎霐祿?。
scanf函數的格式如下:
int scanf (const char* format_str, addr list);
函數分析:
(1) 參數 format_str 是控制格式輸入字符串;
(2) 參數 addr list 是變量地址列表 , 是需要獲取用戶輸入數據的變量地址列表;
(3) 函數的返回值是int類型 , 如果調用成功 , 則返回addr list指定的參數個數 , 如果調用失敗 , 返回-1值 。如下是程序測試例子:
程序運行結果如下:
可以看到 , 對應輸入格式:
scanf(“%d,%d,%d”, &a, &b, &c);
在%d與%d之間 , 是使用逗號“,”分隔開 , 所以 , 在輸入數據的時候 , 使用逗號“,”分隔 。同理 , 對于:
scanf(“%d;%d;%d”, &a, &b, &c);
在輸入數據的時候 , 使用分號“;”分隔開 。
3.1 float和double輸入的區別
在printf函數中 , 輸出float和double類型的數據 , 使用%f格式輸出 。但是 , 在scanf函數中 , 讀取輸入float和double類型的數據時 , 需要注意:
(1) float類型數據 , 使用 %f 格式輸入;
(2) double類型數據 , 使用 %lf格式輸入;在%和f之間添加字母“l”;
程序測試例子如下:
程序運行結果如下:
可以看到 , 在編譯的時候 , 就已經提示“warning 警告”:第12行代碼 , 即:
scanf(“%f”, &b);
第二個參數b是double類型 , 但是 , 格式控制輸入字符串使用‘%f’表示float類型 , 所以 , 提示警告 。輸入數據的時候 , float類型 , 使用%f格式輸入 。double類型 , 應該使用%lf格式輸入 。
那么 , 我們在輸入數據的時候 , 也可以看到 , 在第二次輸入時 , 輸入1.2 , 輸出0.000000 , 運行出錯了 。所以 , 給double類型變量輸入數據的時候 , 必須使用%lf格式 , 輸出的時候 , 可以使用%f格式 。
putchar函數和getchar函數
C語言提供putchar函數 , 用于給終端輸出一個字符;getchar函數 , 可以從終端接收用戶輸入的一個字符 。函數的定義如下:
void putchar(char c);
函數說明:把字符c輸出到終端屏幕中 。
int getchar(void);
函數說明:從終端接收用戶的輸入 , 獲取一個字符 , 通過函數的返回值返回 。
程序測試例子如下:
程序運行結果如下:
可以看到 , 通過putchar函數 , 可以輸出一個字符常量和字符變量 。
當我們想讓程序從終端接收用戶輸入一個字符時 , 可以使用scanf函數;也可以使用getchar函數 。程序測試例子如下:
程序運行結果如下:
可以看到 , 當我們輸入字符“F”之后 , 按下回車鍵 , 表示結束輸入 。然后 , 再輸出變量c中的值 ??梢钥吹?nbsp;, 用戶輸入的字符“F”被存放到變量c中 。
注意:getchar函數的返回值是int類型 , 所以 , 我們應該定義int類型變量來接收返回值 。那么 , 使用putchar函數輸出int類型變量的時候 , 就截取最低的一個字節 , 這一個字節存放的就是getchar函數獲取到的數據 。
C語言提供了puts函數 , 用于給終端輸出一串數據 。gets函數 , 可以從終端接收用戶輸入的字符串 。這兩個函數的使用需要數組和字符串的基礎知識才可以更好理解 , 所以 , 在介紹了數組和字符串之后再介紹該函數的使用 。
6 總結
本章節我們介紹了C語言對標準終端的I/O操作 。
可以使用printf()函數 , 輸出信息到標準輸出終端 。可以使用scanf()函數 , 從標準輸入終端獲取用戶輸入的信息 。
后續隨著課程的深入學習 , 學習到更多、更復雜的系統I/O知識 。例如磁盤文件的I/O讀寫操作 , 串口、網絡socket通信等高級的I/O應用 。
在后續的“Linux系統編程”課程 , 我們學習Linux系統下串口通信、網絡通信等操作 , 就是一種I/O操作 。涉及到I/O操作 , 我們就會講解“阻塞和非阻塞”的通信模式 。
【C語言多組輸入 c++如何實現多組輸入】讀者要仔細分析 , 掌握好每一個知識點 , 然后 , 自己總結出對該知識點的理解 。自己總結出來的知識 , 理解才深刻 , 才是自己掌握的知識 。