最簡單的c語言程序:c語言多組輸入怎麼做

I/O的定義

I/O是計算機系統一個重要的組成部分,計算機系統接受Input(輸入數據),經過CPU運算處理之後,Output(輸出數據)。

所以,I/O是一個很重要的概念。現在剛剛開始學習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值。如下是程序測試例子:

C語言的輸入/輸出操作,整理、總結、歸納

程序運行結果如下:

C語言的輸入/輸出操作,整理、總結、歸納

可以看到,對應輸入格式:

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」;

程序測試例子如下:

C語言的輸入/輸出操作,整理、總結、歸納

程序運行結果如下:

C語言的輸入/輸出操作,整理、總結、歸納

可以看到,在編譯的時候,就已經提示「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);

函數說明:從終端接收用戶的輸入,獲取一個字元,通過函數的返回值返回。

程序測試例子如下:

C語言的輸入/輸出操作,整理、總結、歸納

程序運行結果如下:

C語言的輸入/輸出操作,整理、總結、歸納

可以看到,通過putchar函數,可以輸出一個字元常量和字元變數。

當我們想讓程序從終端接收用戶輸入一個字元時,可以使用scanf函數;也可以使用getchar函數。程序測試例子如下:

C語言的輸入/輸出操作,整理、總結、歸納

程序運行結果如下:

C語言的輸入/輸出操作,整理、總結、歸納

可以看到,當我們輸入字元「F」之後,按下回車鍵,表示結束輸入。然後,再輸出變數c中的值。可以看到,用戶輸入的字元「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操作,我們就會講解「阻塞和非阻塞」的通信模式。

讀者要仔細分析,掌握好每一個知識點,然後,自己總結出對該知識點的理解。自己總結出來的知識,理解才深刻,才是自己掌握的知識。

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/222884.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-09 14:13
下一篇 2024-12-09 14:13

相關推薦

發表回復

登錄後才能評論