C/C++編程筆記:C語言基礎(chǔ)printf()和scanf()函數(shù),大學(xué)第一課知識
在解釋這兩個函數(shù)之前,為了方便大家更容易理解,我們先來講講下面的這幅圖。

這個圖中的例子其實很簡單,我們就是把題目通過輸入設(shè)備(例如鍵盤鼠標(biāo))傳輸?shù)接嬎銠C(jī)中,然后讓計算機(jī)進(jìn)行運算得出結(jié)果,再然后把結(jié)果通過輸出設(shè)備(例如顯示器)反饋給我們,這是一個簡單的人機(jī)的交互過程。
在 C 語言中其實也是一樣的。在程序的運行中,我們經(jīng)常會進(jìn)行一些輸入輸出的操作,用來實現(xiàn)交互。為此, C語言便給出了 printf() 函數(shù)和 scanf() 函數(shù)用來實現(xiàn)輸入和輸出兩個動作。
其中,printf()函數(shù)用于向控制臺輸出字符,scanf()函數(shù)用于讀取用戶的輸入,下列將分別講解這兩個函數(shù)的用法。
1、printf()函數(shù)
在前面的舉例中,我們會經(jīng)常使用 printf() 函數(shù)輸出數(shù)據(jù),也就是類似于上面圖中的輸出設(shè)備,只不過它們的輸出的形式不相同。它可以通過【格式控制字符】輸出多個任意類型的數(shù)據(jù)。下面列舉了printf()函數(shù)中常用的格式控制字符。

這個表格中列舉了很多格式控制字符,使用這些格式控制符可以讓printf()輸出指定類型的數(shù)據(jù),接下來通過一個具體的案例來演示這些格式控制符的使用,如案例一所示.
案例一:
?#include
?void main()
?{
?printf("%c %c", 'H', ' ');
?printf("%s", "Hello, world! ");
?printf("%d %d %d ", 1, 2, 3);
?printf("%f %f ", 2.1, 2.2);
?}
運行結(jié)果如下圖所示:

在這個例題中 printf() 函數(shù),通過格式控制字符
“%c”、“%s”、“%d”、“%f”,分別輸出了字符、字符串、整數(shù)、浮點數(shù)。
2、scanf()函數(shù)
scanf() 函數(shù)負(fù)責(zé)從控制臺上接收用戶的輸入,你可以理解為它就是一種輸入設(shè)備,它可以靈活接收各種類型的數(shù)據(jù),如字符串、字符、整型、浮點數(shù)等, scanf() 函數(shù)也可以通過格式控制字符控制用戶的輸入,其用法與 printf() 函數(shù)一樣。接下來,通過一個獲取字符串的案例講解 scanf() 函數(shù)的用法,如案例二所示。
案例二:
?#include
?void main()
?{
?char str[256]; // 字符數(shù)組保存得到的字符串
?scanf("%s", str);
?printf("%s ", str);
?}
運行結(jié)果如圖所示:

在案例二中,首先定義了一個長度為256的字符數(shù)組str,然后利用 scanf() 函數(shù)獲得用戶從控制臺輸入的字符,最后使用 printf() 函數(shù)將得到的字符串打印在控制臺上。本例中用戶從控制臺上輸入了Helloworld,并按回車符,此時scanf()函數(shù)會把回車符看做是字符串終止的標(biāo)志(也稱為終止符),將整個Helloworld讀取到str字符數(shù)組中。
要點留心:C語言中的終止符
在使用 scanf() 函數(shù)獲取用戶輸入的信息時,如果輸入的信息中包含某個終止符,scanf()函數(shù)就認(rèn)為輸入結(jié)束,接下來就列舉一些常見的終止符,空格、水平制表符(tab鍵)、回車等
接下來,以案例二為例,當(dāng)程序運行后,如果輸入的字符串包含空格,例如“Hello world”,此時程序的運行結(jié)果如圖所示:

從此可以看出,盡管輸入的字符串是Hello world,但是程序只打印了Hello。這是因為Hello world中包含一個空格,空格也是一個終止符,因此scanf()只能讀到空格之前的內(nèi)容。
希望對你有幫助!

學(xué)習(xí)C/C++編程知識,提升C/C++編程能力,歡迎關(guān)注UP一起來成長!
另外,UP在主頁上傳了一些學(xué)習(xí)C/C++編程的視頻教程,有興趣或者正在學(xué)習(xí)的小伙伴一定要去看一看哦!會對你有幫助的~