C語言printf()和scanf()函數?其實就是輸入輸出

編程語言 C語言 科技 輕鬆學C語言 2017-05-23

在解釋這兩個函數之前,為了方便大家更容易理解,我們先來講講下面的這幅圖。

C語言printf()和scanf()函數?其實就是輸入輸出

這個圖中的例子其實很簡單,我們就是把題目通過輸入設備(例如鍵盤鼠標)傳輸到計算機中,然後讓計算機進行運算得出結果,再然後把結果通過輸出設備(例如顯示器)反饋給我們,這是一個簡單的人機的交互過程。

在 C 語言中其實也是一樣的。在程序的運行中,我們經常會進行一些輸入輸出的操作,用來實現交互。為此, C語言便給出了 printf() 函數和 scanf() 函數用來實現輸入和輸出兩個動作。

其中,printf()函數用於向控制檯輸出字符,scanf()函數用於讀取用戶的輸入,下列將分別講解這兩個函數的用法。

1、printf()函數

在前面的舉例中,我們會經常使用 printf() 函數輸出數據,也就是類似於上面圖中的輸出設備,只不過它們的輸出的形式不相同。它可以通過【格式控制字符】輸出多個任意類型的數據。下面列舉了printf()函數中常用的格式控制字符。

常用printf()格式字符

常用格式字符含義
%s輸出一個字符串
%c輸出一個字符
%d以十進制輸出一個有符號整型
%u以十進制輸出一個無符號整型
%o以八進制輸出一個整數
%x以十六進制輸出一個小寫整數
%X以十六進制輸出一個大寫整數
%f以十進制輸出一個浮點數
%e以科學計數法輸出一個小寫浮點數
%E以科學計數法輸出一個大寫浮點數

這個表格中列舉了很多格式控制字符,使用這些格式控制符可以讓printf()輸出指定類型的數據,接下來通過一個具體的案例來演示這些格式控制符的使用,如案例一所示.

案例一:

1 #include <stdio.h>

1 void main()

2 {

3 printf("%c %c", 'H', '\n');

4 printf("%s", "Hello, world!\n");

5 printf("%d %d %d \n", 1, 2, 3);

6 printf("%f %f \n", 2.1, 2.2);

7 }

運行結果如下圖所示:

C語言printf()和scanf()函數?其實就是輸入輸出

在這個例題中 printf() 函數,通過格式控制字符

“%c”、“%s”、“%d”、“%f”,分別輸出了字符、字符串、整數、浮點數。

2、scanf()函數

scanf() 函數負責從控制檯上接收用戶的輸入,你可以理解為它就是一種輸入設備,它可以靈活接收各種類型的數據,如字符串、字符、整型、浮點數等, scanf() 函數也可以通過格式控制字符控制用戶的輸入,其用法與 printf() 函數一樣。接下來,通過一個獲取字符串的案例講解 scanf() 函數的用法,如案例二所示。

案例二:

1 #include <stdio.h>

8 void main()

9 {

10 char str[256]; // 字符數組保存得到的字符串

11 scanf("%s", str);

12 printf("%s\n", str);

13 }

運行結果如圖所示:

C語言printf()和scanf()函數?其實就是輸入輸出

在案例二中,首先定義了一個長度為256的字符數組str,然後利用 scanf() 函數獲得用戶從控制檯輸入的字符,最後使用 printf() 函數將得到的字符串打印在控制檯上。本例中用戶從控制檯上輸入了Helloworld,並按回車符,此時scanf()函數會把回車符看做是字符串終止的標誌(也稱為終止符),將整個Helloworld讀取到str字符數組中。

要點留心:C語言中的終止符

在使用 scanf() 函數獲取用戶輸入的信息時,如果輸入的信息中包含某個終止符,scanf()函數就認為輸入結束,接下來就列舉一些常見的終止符,具體下表所示。

scanf()輸入字符串的終止符

字符含義
0x20空格
\t水平製表符(tab鍵)
\n換行
\v垂直製表符
\f換頁
\r回車

接下來,以案例二為例,當程序運行後,如果輸入的字符串包含空格,例如“Hello world”,此時程序的運行結果如圖所示:

C語言printf()和scanf()函數?其實就是輸入輸出

從此可以看出,儘管輸入的字符串是Hello world,但是程序只打印了Hello。這是因為Hello world中包含一個空格,空格也是一個終止符,因此scanf()只能讀到空格之前的內容。

END

C語言printf()和scanf()函數?其實就是輸入輸出

想學習交流C語言可以申請加群:564950050,一個人單獨學習效率是很低的,只有一群相同目標的小夥伴一起學習討論,才是進步最快的方法。

相關推薦

推薦中...