在C語言中提供了許多內(nèi)置的輸入輸出函數(shù)。
標(biāo)準(zhǔn)文件的定義
在C語言中會把所有設(shè)備當(dāng)文件來處理。為了訪問鍵盤和屏幕,以下三個文件會在程序執(zhí)行時而打開。
C 語言中的輸入/輸出通常使用內(nèi)置的printf() 和 scanf()函數(shù)。
scanf() 函數(shù)用于從標(biāo)準(zhǔn)輸入(鍵盤)讀取并格式化, printf() 函數(shù)發(fā)送格式化輸出到標(biāo)準(zhǔn)輸出(屏幕)。
#include
intmain()
{ printf("STM32"); //顯示引號中的內(nèi)容 return0;
}
編譯以上程序,輸出結(jié)果為:
STM32
解析:
在C 語言程序都需要包含main()函數(shù)。 代碼從main()函數(shù)開始執(zhí)行。
printf()用于格式化輸出到屏幕。printf()函數(shù)在"stdio.h"頭文件中聲明。
stdio.h是一個頭文件 (標(biāo)準(zhǔn)輸入輸出頭文件) and#include是一個預(yù)處理命令,用來引入頭文件。 當(dāng)編譯器遇到printf()函數(shù)時,如果沒有找到stdio.h頭文件,會發(fā)生編譯錯誤。
return 0;語句用于表示退出程序。
%d 格式化輸出整數(shù)
編譯以上程序,輸出結(jié)果為:
Number=5
printf() 函數(shù)的引號中使用 "%d" (整型) 來匹配整型變量 testInteger 并輸出到屏幕。
%f 格式化輸出浮點型數(shù)據(jù)
#include
intmain()
{ floatf;
printf("Enter a number: ");
// %f 匹配浮點型數(shù)據(jù) scanf("%f",&f);
printf("Value = %f", f);
return0;
}
getchar() 與putchar() 函數(shù)
int putchar(int c)函數(shù)把字符輸出到屏幕上,并返回相同的字符。這個函數(shù)在同一個時間內(nèi)只會輸出一個單一的字符。您可以在循環(huán)內(nèi)使用這個方法,以便在屏幕上輸出多個字符。
int getchar(void)函數(shù)從屏幕讀取下一個可用的字符,并把它返回為一個整數(shù)。這個函數(shù)在同一個時間內(nèi)只會讀取一個單一的字符。您可以在循環(huán)內(nèi)使用這個方法,以便從屏幕上讀取多個字符。
看下面的實例:
上面的代碼被編譯和執(zhí)行時,它會等待您輸入一些文本,當(dāng)您輸入一個文本并按下回車鍵時,程序會繼續(xù)并只會讀取一個單一的字符,如下:
$./a.outEnter a value :runoobYou entered: r
gets() 與 puts() 函數(shù)
char *gets(char *s)函數(shù)從stdin讀取一行到s所指向的緩沖區(qū),直到一個終止符或 EOF。
int puts(const char *s)函數(shù)把字符串 s 和一個尾隨的換行符寫入到stdout。
運(yùn)行如下:
$./a.outEnter a value :runoobYou entered: runoob
scanf() 和 printf() 函數(shù)
int scanf(const char *format, ...)函數(shù)從標(biāo)準(zhǔn)輸入流stdin讀取輸入,并根據(jù)提供的format來瀏覽輸入。
int printf(const char *format, ...)函數(shù)把輸出寫入到標(biāo)準(zhǔn)輸出流stdout,并根據(jù)提供的格式產(chǎn)生輸出。
format可以是一個簡單的常量字符串,但是您可以分別指定 %s、%d、%c、%f 等來輸出或讀取字符串、整數(shù)、字符或浮點數(shù)。還有許多其他可用的格式選項,可以根據(jù)需要使用。如需了解完整的細(xì)節(jié),可以查看這些函數(shù)的參考手冊。現(xiàn)在讓我們通過下面這個簡單的實例來加深理解:
運(yùn)行顯示如下:
$./a.outEnter a value :runoob 123You entered: runoob 123
值得注意的是,scanf() 期待輸入的格式與您給出的 %s 和 %d 相同,這意味著您必須提供有效的輸入,比如 "string integer",如果您提供的是 "string string" 或 "integer integer",它會被認(rèn)為是錯誤的輸入。另外,在讀取字符串時,只要遇到一個空格,scanf() 就會停止讀取,所以 "this is test" 對 scanf() 來說是三個字符串。
-
C語言
+關(guān)注
關(guān)注
180文章
7604瀏覽量
136861 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4331瀏覽量
62631 -
編譯器
+關(guān)注
關(guān)注
1文章
1634瀏覽量
49134
原文標(biāo)題:C語言中的輸入&輸出
文章出處:【微信號:c-stm32,微信公眾號:STM32嵌入式開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論