scanf,printf,getc,putc,getchar,putchar,gets,puts,fgets,fputs,fgetc,fputc,fscanf,fprintf等.

創(chuàng)新互聯(lián)公司公司2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元寶安做網(wǎng)站,已為上家服務(wù),為寶安各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18982081108
int
scanf(const
char
*format,
arg_list)
scanf主要從標(biāo)準(zhǔn)輸入流中獲取參數(shù)值,format為指定的參數(shù)格式及參數(shù)類型,如scanf("%s,%d",str,icount);
它要求在標(biāo)準(zhǔn)輸入流中輸入類似"son
of
bitch,1000"這樣的字符串,同時(shí)程序會(huì)將"son
of
bitch"給str,1000給icount.
scanf函數(shù)的返回值為int值,即成功賦值的個(gè)數(shù),在上例中如果函數(shù)調(diào)用成功,則會(huì)返回2,所以我們?cè)趯懗绦驎r(shí),可以通過
語句if(scanf("%s,%d",str,icount)
!=
2){...}來判斷用戶輸入是否正確.
int
printf(const
char
*format,
arg_list)
printf主要是將格式化字符串輸出到標(biāo)準(zhǔn)輸出流中,在stdio.h頭文件中定義了標(biāo)準(zhǔn)的輸入和輸出,分別是stdin,stdout.
arg_list可以是變量名,也可以是表達(dá)式,但最終都會(huì)以值的形式填充進(jìn)format中.
int
getc(FILE
*fp)
getc主要是從文件中讀出一個(gè)字符.常用的判斷文件是否讀取結(jié)束的語句為:(ch
=
getc(fp))
!=
EOF.EOF為文件結(jié)束標(biāo)志,
定義在stdio.h中,就像EXIT_SUCCESS,EXIT_FAILURE定義在stdlib.h中一樣,文件也可以被理解為一種流,所以當(dāng)fp為stdin
時(shí),getc(stdin)就等同于getchar()了.
int
putc(int
ch,FILE
*fp)
putc主要是把字符ch寫到文件fp中去.如果fp為stdout,則putc就等同于putchar()了.
int
getchar(void)
getchar主要是從標(biāo)準(zhǔn)輸入流讀取一個(gè)字符.默認(rèn)的標(biāo)準(zhǔn)輸入流即stdio.h中定義的stdin.但是從輸入流中讀取字符時(shí)又
涉及到緩沖的問題,所以并不是在屏幕中敲上一個(gè)字符程序就會(huì)運(yùn)行,一般是通過在屏幕上敲上回車鍵,然后將回車前的字符
串放在緩沖區(qū)中,getchar就是在緩沖區(qū)中一個(gè)一個(gè)的讀字符.當(dāng)然也可以在while循環(huán)中指定終止字符,如下面的語句:
while
((c
=
getchar())
!=
'#')這是以#來結(jié)束的.
int
putchar(int
ch)
putchar(ch)主要是把字符ch寫到標(biāo)準(zhǔn)流stdout中去.
char
*
gets(char
*str)
gets主要是從標(biāo)準(zhǔn)輸入流讀取字符串并回顯,讀到換行符時(shí)退出,并會(huì)將換行符省去.
int
puts(char
*str)
puts主要是把字符串str寫到標(biāo)準(zhǔn)流stdout中去,并會(huì)在輸出到最后時(shí)添加一個(gè)換行符.
char
*fgets(char
*str,
int
num,
FILE
*fp)
str是存放讀入的字符數(shù)組指針,num是最大允許的讀入字符數(shù),fp是文件指針.fgets的功能是讀一行字符,該行的字符數(shù)
不大于num-1.因?yàn)閒gets函數(shù)會(huì)在末尾加上一個(gè)空字符以構(gòu)成一個(gè)字符串.另外fgets在讀取到換行符后不會(huì)將其省略.
int
fputs(char
*str,
file
*fp)
fputs將str寫入fp.fputs與puts的不同之處是fputs在打印時(shí)并不添加換行符.
int
fgetc(FILE
*fp)
fgetc從fp的當(dāng)前位置讀取一個(gè)字符.
int
fputc(int
ch,
file
*fp)
fputc是將ch寫入fp當(dāng)前指定位置.
int
fscanf(FILE
*fp,
char
*format,...)
fscanf按照指定格式從文件中出讀出數(shù)據(jù),并賦值到參數(shù)列表中.
int
fprintf(FILE
*fp,
char
*format,...)
fprintf將格式化數(shù)據(jù)寫入流式文件中.
Turbo C 2.0標(biāo)準(zhǔn)庫提供了兩個(gè)控制臺(tái)格式化輸入、輸出函數(shù) scanf();和printf();這兩個(gè)函數(shù)可以在標(biāo)準(zhǔn)輸入輸出設(shè)備上以各種不同的格式讀寫數(shù)據(jù)。scanf()函數(shù)用來從標(biāo)準(zhǔn)輸入設(shè)備(鍵盤)上讀數(shù)據(jù),printf()函數(shù)用來向標(biāo)準(zhǔn)輸出設(shè)備(屏幕)寫數(shù)據(jù)。下面詳細(xì)介紹這兩個(gè)函數(shù)的用法。
1.標(biāo)準(zhǔn)輸入語句
scanf()函數(shù)是格式化輸入函數(shù),它從標(biāo)準(zhǔn)輸入設(shè)備(鍵盤)讀取輸入的信息。其調(diào)用格式為:scanf(<格式化字符串>,<地址表>);
格式化字符串包括以下三類不同的字符;
(1).空白字符:空白字符會(huì)使scanf()函數(shù)在讀操作中略去輸入中的一個(gè)或多個(gè)空白字符。
(2).非空白字符:一個(gè)非空白字符會(huì)使scanf()函數(shù)在讀入時(shí)剔除掉與這個(gè)非空白字符相同的字符。
(3).格式化說明符:以%開始,后跟一個(gè)或幾個(gè)規(guī)定字符,用來確定輸出內(nèi)容格式。
一:格式輸出函數(shù)printf()
1、調(diào)用形式一般為:printf("格式化控制字符串",輸出表列);
2、格式化控制字符串用于指定輸出格式,它有三種形式:
1、格式說明符:規(guī)定了相應(yīng)輸出表列內(nèi)容的輸出格式,以%打頭,如%d、%o等
2、轉(zhuǎn)義字符:用來輸出轉(zhuǎn)義字符所代表的控制代碼或者特殊字符,比如常用的‘\n'、‘\t'
3、普通字符:需要原樣輸出的字符。
3、輸出表列為若干需要輸出的數(shù)據(jù)項(xiàng),它與格式說明符在數(shù)量和類型上一一對(duì)應(yīng);
4、格式字符m指定輸出數(shù)據(jù)所占寬度,n對(duì)實(shí)數(shù)表示輸出n位小數(shù),對(duì)字符串表示截取的字符個(gè)數(shù),+表示右對(duì)齊,通常省略。
—表示左對(duì)齊,l用于長(zhǎng)整型數(shù)據(jù),可加在d、o、x、u前,更多格式說明符及其組合形式如下所示:
格式字符
數(shù)據(jù)對(duì)象
輸出形式
數(shù)據(jù)輸出方法
%(+)-md
int
unsigned
int
short
unsigned
short
char
十進(jìn)制整數(shù)
1、無m按實(shí)際位數(shù)輸出
2、有m輸出m位;超過m位,按實(shí)際位數(shù)輸出,不足補(bǔ)空格
3、有+(默認(rèn)為+)右對(duì)齊(左補(bǔ)空格)
4、有-左對(duì)齊(右補(bǔ)空格)
%(+)-mo
八進(jìn)制整數(shù)
%(+)-mx
十六進(jìn)制整數(shù)
%(+)-mu
無符號(hào)整數(shù)
%(+)-mld
long
unsigned
long
十進(jìn)制整數(shù)
%(+)-mlo
八進(jìn)制整數(shù)
%(+)-mlx
十六進(jìn)制整數(shù)
%(+)-mlu
無符號(hào)整數(shù)
%(+)-m.nf
float
double
十進(jìn)制小數(shù)
%(+)-m.ne
十進(jìn)制指數(shù)
%(+)-g
自動(dòng)選用%f和%e中較短的輸出寬度輸出單、雙精度浮點(diǎn)數(shù)
%(+)-mc
char
int
short
單個(gè)字符
1、無m輸出單個(gè)字符
2、有m輸出m位,補(bǔ)空格
3、有+(默認(rèn)為+)右對(duì)齊(左補(bǔ)空格)
4、有-左對(duì)齊(右補(bǔ)空格)
%(+)-m.ns
字符串
一串字符
1.無m、n按實(shí)際字符串輸出全部字符
2、有m、n僅輸出前n個(gè)字符,補(bǔ)空格
3.有+(默認(rèn)為+)右對(duì)齊(左補(bǔ)空格)
4、有-左對(duì)齊(右補(bǔ)空格)
二:格式輸入函數(shù)scanf()
1、
調(diào)用格式一般為:scanf("格式化控制字符串",地址表列);
2、格式化控制字符串和printf()函數(shù)含義相似,所不同的是它是對(duì)輸入格式進(jìn)行控制;
3、地址表列是有若干等待輸入的數(shù)據(jù)所對(duì)應(yīng)的內(nèi)存單元地址組成,由逗號(hào)隔開,一般形式為a,a為變量;
4、地址表列在數(shù)量和類型上和格式化控制字符串中的格式說明符一一對(duì)應(yīng);
5、格式字符h表示輸入短型數(shù)據(jù),可用在d、o、x前面,m指定輸入數(shù)據(jù)所占寬度,
*表示對(duì)應(yīng)的數(shù)據(jù)項(xiàng)讀入后不賦給相應(yīng)的變量,更多格式說明符及其組合如下
格式字符
數(shù)據(jù)對(duì)象
輸入形式
數(shù)據(jù)輸入方法
%md
int
short
unsigned
int
unsigned
short
十進(jìn)制整數(shù)
1、無m按實(shí)際位數(shù)輸入
2、有m輸入m位,不足m則跟回車鍵
%mo
八進(jìn)制整數(shù)
%mx
十六進(jìn)制整數(shù)
%mld
long
unsigned
long
十進(jìn)制整數(shù)
%mlo
八進(jìn)制整數(shù)
%mlx
十六進(jìn)制整數(shù)
%mlf
float
double
十進(jìn)制整數(shù)
%mle
%mc
char
單個(gè)字符
1、無m取單個(gè)字符
2、有m輸入m位,僅取第一個(gè)字符
%ms
字符串
一串字符
1、無m取回車或空格前若干字符
2、有m僅取前m字符
在C語言中,輸入使用的是scanf函數(shù),scanf函數(shù)的格式為scanf(格式控制,地址列表),如scanf("%d"a)。
輸出使用的是printf()函數(shù),printf函數(shù)的格式為printf(格式控制,輸出表列),如printf("%d\n",a)。在輸出時(shí)可以在"%"和字母之間插進(jìn)數(shù)字表示最大場(chǎng)寬。可以根據(jù)需要輸出數(shù)字的位數(shù)來決定“%”前的數(shù)值。
如:%3d表示輸出3位整型數(shù), 不夠3位右對(duì)齊。
%9.2f 表示輸出場(chǎng)寬為9的浮點(diǎn)數(shù), 其中小數(shù)位為2, 整數(shù)位為7,小數(shù)點(diǎn)占一位, 不夠9位右對(duì)齊。
%8s 表示輸出8個(gè)字符的字符串, 不夠8個(gè)字符右對(duì)齊。
擴(kuò)展資料
C語言輸入輸出時(shí)的規(guī)則:
一、格式說明符個(gè)數(shù)與輸入數(shù)據(jù)個(gè)數(shù)不相等的情況:
當(dāng)我們輸入數(shù)據(jù)時(shí),只要沒有按回車鍵,所輸入的數(shù)據(jù)都還存放在緩沖區(qū),并沒有存入變量中。按【Enter】鍵后,scanf()函數(shù)才會(huì)從緩沖區(qū)中取走數(shù)據(jù)。緩沖區(qū)是一個(gè)先進(jìn)先出的隊(duì)列,即取走數(shù)據(jù)的時(shí)候,遵循先輸入的數(shù)據(jù)先取走的原則。
scanf函數(shù)的格式說明符有幾個(gè)就要取幾次數(shù)據(jù),只要碰到格式說明符就必須把數(shù)據(jù)取走,至于是不是要把取走的數(shù)據(jù)存放起來,就得看數(shù)據(jù)列表中的數(shù)據(jù)個(gè)數(shù)。沒取完的數(shù)據(jù)繼續(xù)留在緩沖區(qū)中。
二、寬度輸出的情況:
1、在%和格式字符之間加入一個(gè)整數(shù)來控制輸出數(shù)據(jù)所占寬度
2、在%和格式字符f之間加入一個(gè)“整數(shù)1.?整數(shù)2”來控制輸出數(shù)據(jù)的格式。
整數(shù)1:整個(gè)輸出數(shù)據(jù)占的總寬度
整數(shù)2:輸出實(shí)數(shù)的小數(shù)部分的個(gè)數(shù)
注意:先用整數(shù)2處理小數(shù)部分,再用整數(shù)1處理整個(gè)數(shù)據(jù),包括已處理好的小數(shù)部分
三、寬度輸入的情況:
寬度輸入指的是在%和格式說明符d之間加入一個(gè)整數(shù)。如:scanf("%2d", x);
注意:
1、%d與%1d是不同的,它們具有不同的含義。
2、 當(dāng)寬度小于數(shù)據(jù)的實(shí)際寬度時(shí),截取指定寬度的部分作為一個(gè)數(shù)進(jìn)入緩沖區(qū),再將剩余部分作為另一個(gè)數(shù)放入緩沖區(qū)。
參考資料來源:百度百科——scanf
百度百科——printf()
第一個(gè)要求:
#include
stdio.h
void
main()
{
char
a
;
scanf("%c",a)
;
/*
從鍵盤上輸入一個(gè)單個(gè)字符,并存入變量
a
中
*/
if(
(
a
=
'a'
)
(
a
=
'z'
)
)
/*
如果輸入的是
小寫字母
*/
{
a-=32
;
/*
把相應(yīng)的小寫字母轉(zhuǎn)換為
大寫字母
,并輸出
*/
printf("%c",a)
;
}
else
/*
如果是其它所有字母的話,就直接輸出字母本身
*/
printf("%c\n",
a
)
;
}
第二個(gè)要求:
65(按
十進(jìn)制
格式輸出)
101(按
八進(jìn)制
格式輸出)
41(按
十六進(jìn)制
格式輸出)
A(輸出ASCII
為
65
的字符本身,為大寫的
A)
C語言中如何實(shí)現(xiàn)多組數(shù)據(jù)輸入輸出? c語言中有一個(gè)標(biāo)準(zhǔn)輸入函數(shù),即:scanf函數(shù),它可以讀取輸入的任意格式類型的數(shù)據(jù)。scanf函數(shù)也有返回值,返回類型為int類型,它返回成功讀入的項(xiàng)目的個(gè)數(shù)。如果它沒有讀取任何項(xiàng)目(當(dāng)它期望一個(gè)數(shù)字而您卻鍵入了一個(gè)非數(shù)字字符串時(shí)就會(huì)發(fā)生這種情況,scanf()會(huì)返回0。當(dāng)它檢測(cè)到“文件結(jié)尾”(end of file)時(shí),它返回EOF(EOF是在文件stdio.h中定義的特殊值,一般#define指令把EOF的值定義為-1,我們可以理解為:#define EOF -1)。
c語言中,所有的輸入函數(shù)都共用同一個(gè)輸入緩沖區(qū),我們從鍵盤鍵入數(shù)據(jù)時(shí),其實(shí)是將輸入寫入緩沖區(qū)中,當(dāng)我們按下回車鍵時(shí),scanf()函數(shù)從緩沖區(qū)中讀取輸入,刷新緩沖區(qū)。
C語言中實(shí)現(xiàn)多組數(shù)據(jù)輸入輸出主要有兩種方式:
1.首先輸入一個(gè)n,表示將有n個(gè)輸入輸出,例如:
#include stdio.hint main(){ int n,a; scanf("%d",n); while(n--){ scanf("%d",a); printf("輸出:%d\n",a); } return 0;}/*運(yùn)行結(jié)果:3255輸出:255156輸出:156125輸出:125 */
2.使用while(scanf("%d",n)!=EOF){}語句,直達(dá)輸入ctrl+z,結(jié)束輸入,例如:
#include stdio.hint main(){ int a; while(scanf("%d",a)!=EOF){ printf("輸出:%d\n",a); } return 0;}/*運(yùn)行結(jié)果:54輸出:545156輸出:515621輸出:21^Z*/
你先要設(shè)置數(shù)組的大小,這個(gè)你必須要定義的。你要不確定你要多少你最好把你的數(shù)值設(shè)置大些。至于你要輸多個(gè)你可以用循環(huán)語句如:for(i=1;i=n;i++)
scanf("%d",a[n]);
輸出還是一樣之是把scanf改成printf不要取地址就行了。
希望能對(duì)你有幫助。
C語言多組數(shù)據(jù)輸入輸出
#includestdio.hint pow(int a,int n)計(jì)算a的n次方{ if(n==1) return a; return a*pow(a,n-1);}int main(){ int T; int n,k,sum,i; scanf("%d",T); while(T--) { sum=0; scanf("%d%d",n,k); for(i=1;i=k;i++) { sum+=pow(n,i);累加 } printf("%d\n",sum); } return 0;}
c語言,如何實(shí)現(xiàn)多組數(shù)據(jù)結(jié)果對(duì)應(yīng)輸出
scanf 一個(gè) for
printf另一個(gè)for ................
C語言如何實(shí)現(xiàn)輸入多組數(shù)據(jù)測(cè)試
#includestdio.h
void main()
{
int n;
while(scanf("%d",n)!=EOF,n)
或者寫成while(scanf("%d",n)!=EOF)然后在循環(huán)里加一句if(n==0)break;
{
if(n==0)break;
if((n/10000==n%10)(n/1000%10==n/10%10))
判斷回文
printf("Yes.\
");
else
printf("No.\
");
}
}
這個(gè)代碼應(yīng)該是對(duì)的,在OJ上,多組數(shù)據(jù)都是這么處理的。
這個(gè)沒關(guān)系的,提交的時(shí)候,這樣也是對(duì)的,因?yàn)镺J系統(tǒng)在判斷答案的時(shí)候,輸入和輸出數(shù)據(jù)放在不同的文件夾下面的,只要它的輸入文件在你的程序下運(yùn)行,對(duì)應(yīng)的輸出文件和他的一致,你的程序就是正確的,所以,就不需要把結(jié)果存起來。
如果你真的想那樣,那就用一個(gè)數(shù)組把答案存起來,等循環(huán)結(jié)束的時(shí)候,再把結(jié)果printf就行了
在c語言中,輸入輸出數(shù)據(jù)可以用輸入輸出函數(shù),匯編語言如何實(shí)現(xiàn)輸入輸出數(shù)據(jù)?
匯編語言中,根據(jù)不同的芯片,也是不同的語句實(shí)現(xiàn)輸入輸出,但思想都是一樣的:輸入——將值取入;輸出——將值送出。語句:
輸入:
有的用 in R0,INPORTADD ;INPORTADD 是端口地址
輸出:
有的用 out R0,OUTADD ;OUTADD 是端口地址
而且,數(shù)據(jù)與地址,哪個(gè)放前,哪個(gè)放后,不同編譯環(huán)境也不同,所以,你要根據(jù)具體的環(huán)境來定。
單片機(jī)中,除了你提到的輸入輸出辦法,還有:用I/O來進(jìn)行,就是用輸入輸出點(diǎn)的信號(hào)狀態(tài)來表達(dá);也可用存儲(chǔ)芯片,如FLASH來進(jìn)行處理數(shù)據(jù)的輸入輸出。
什么叫數(shù)據(jù)的輸入輸出?在C語言中如何實(shí)現(xiàn)?
數(shù)據(jù)的輸入:在程序運(yùn)行時(shí),通過外部手段,發(fā)送數(shù)據(jù)給程序,供程序使用的過程,稱為數(shù)據(jù)的輸入。
數(shù)據(jù)的輸出:程序運(yùn)行時(shí),對(duì)外界的任何修改,都可以稱為輸出,包括但不限于,命令行的打印,圖形界面的顯示,存儲(chǔ)設(shè)備數(shù)據(jù)的修改等。
在C語言中,可以通過系統(tǒng)接口進(jìn)行數(shù)據(jù)的輸入輸出,比較常用的有標(biāo)準(zhǔn)輸入輸出,文件輸入輸出,以及圖形界面輸入輸出等。
還可以通過硬件相關(guān)接口,實(shí)現(xiàn)特殊設(shè)備的輸入輸出,比如讀取串口設(shè)備的輸入輸出等。
本文標(biāo)題:c語言怎么輸入輸出函數(shù) C語言函數(shù)怎么輸出
URL地址:http://chinadenli.net/article48/doojjep.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動(dòng)態(tài)網(wǎng)站、品牌網(wǎng)站設(shè)計(jì)、企業(yè)建站、全網(wǎng)營(yíng)銷推廣、網(wǎng)站建設(shè)、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)