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

C51單片機(jī)C語(yǔ)言與標(biāo)準(zhǔn)C語(yǔ)言有什么區(qū)別?

C語(yǔ)言教程之順序結(jié)構(gòu)程序設(shè)計(jì)數(shù)據(jù)輸入輸出及C程序上機(jī)過(guò)程資料概述

單片機(jī)C語(yǔ)言中如何使用nop函數(shù)進(jìn)行短延時(shí)的效果資料和程序說(shuō)明

C語(yǔ)言輸入輸出

C語(yǔ)言中文件讀寫檢測(cè)
scanf在C語(yǔ)言中的作用
c語(yǔ)言gets函數(shù)可以輸入數(shù)字嗎
EE-128:C語(yǔ)言中的DSP:從C調(diào)用匯編類成員函數(shù)

評(píng)論