C語言的輸出函數是:printf("%format...",
創(chuàng)新互聯(lián)建站是一家以成都網站建設公司、網頁設計、品牌設計、軟件運維、營銷推廣、小程序App開發(fā)等移動開發(fā)為一體互聯(lián)網公司。已累計為玻璃鋼坐凳等眾行業(yè)中小客戶提供優(yōu)質的互聯(lián)網建站和軟件開發(fā)服務。
string1...);需要包含頭文件:#include
C++的輸出函數是:std::cout
"Helloworld";需要包含頭文件:#include
格式化輸出函數指的是printf(),用來在屏幕上打印輸出字符串和變量等內容
格式化輸入函數指的是scanf(),其功能是實現和用戶的交互,由用戶輸入相應的值然后給變量
下面是個判斷一個數有幾位的一段代碼,希望能幫助到你
C語言輸入輸出函數有很多,標準I/O函數中包含了如下幾個常用的函數:
scanf,printf,getc,putc,getchar,putchar,gets,puts,fgets,fputs,fgetc,fputc,fscanf,fprintf等.
int
getc(FILE
*fp)
getc主要是從文件中讀出一個字符.常用的判斷文件是否讀取結束的語句為
(ch
=
getc(fp))
!=
EOF.EOF為文件結束標志,定義在stdio.h中,就像EXIT_SUCCESS,EXIT_FAILURE定義在stdlib.h中一樣,文件也可以被理解為一種流,所以當fp為stdin時,getc(stdin)就等同于getchar()了.
int
putc(int
ch,FILE
*fp)
putc主要是把字符ch寫到文件fp中去.如果fp為stdout,則putc就等同于putchar()了.
int
getchar(void)
getchar主要是從標準輸入流讀取一個字符.默認的標準輸入流即stdio.h中定義的stdin.但是從輸入流中讀取字符時又涉及到緩沖的問題,所以并不是在屏幕中敲上一個字符程序就會運行,一般是通過在屏幕上敲上回車鍵,然后將回車前的字符串放在緩沖區(qū)中,getchar就是在緩沖區(qū)中一個一個的讀字符.當然也可以在while循環(huán)中指定終止字符,如下面的語句:while
((c
=
getchar())
!=
'#')這是以#來結束的.
int
putchar(int
ch)
putchar(ch)主要是把字符ch寫到標準流stdout中去.
char
*
gets(char
*str)
gets主要是從標準輸入流讀取字符串并回顯,讀到換行符時退出,并會將換行符省去.
int
puts(char
*str)
puts主要是把字符串str寫到標準流stdout中去,并會在輸出到最后時添加一個換行符.
char
*fgets(char
*str,
int
num,
FILE
*fp)
str是存放讀入的字符數組指針,num是最大允許的讀入字符數,fp是文件指針.fgets的功能是讀一行字符,該行的字符數不大于num-1.因為fgets函數會在末尾加上一個空字符以構成一個字符串.另外fgets在讀取到換行符后不會將其省略.
int
fputs(char
*str,
file
*fp)
fputs將str寫入fp.fputs與puts的不同之處是fputs在打印時并不添加換行符.
int
fgetc(FILE
*fp)
fgetc從fp的當前位置讀取一個字符.
int
fputc(int
ch,
file
*fp)
fputc是將ch寫入fp當前指定位置.
int
fscanf(FILE
*fp,
char
*format,
輸入列表)
fscanf按照指定格式從文件中出讀出數據,并賦值到參數列表中.
int
fprintf(FILE
*fp,
char
*format,
輸出列表)
fprintf將格式化數據寫入流式文件中.
數據塊讀寫函數
fread
(buffer,size,count,fp);
fwrite(buffer,size,count,fp);
參數說明:
buffer:是一個指針。
對fread
來說,它是讀入數據的存放地址。
對fwrite來說,是要輸出數據的地址(均指起始地址)。
size:
要讀寫的字節(jié)數。
count:
要進行讀寫多少個size字節(jié)的數據項。
fp:
文件型指針。
在C語言中,輸入輸出函數有著相當重要的地位,它是我們的程序與用戶交互的唯一途徑,現在我就將C語言中比較常見的幾個輸入輸出函數介紹給大家,以下這些講解都是針對VC調試平臺。
(一) 格式化輸入輸出函數
(1)scanf( )格式化輸入函數
格式輸入函數scanf( )函數,它的格式為scanf(“格式字符串”,輸入列表)。“格式字符串”包含三種類型的字符:a、格式字符,以%開頭的字符,用以說明輸入列表的數據以何種類型及格式的形式輸入。b、普通字符,要求在輸入時必須原樣一起輸入的字符。C、空白字符(空格、跳格鍵、回車鍵)作為相鄰兩個數據的默認分隔符。
在scanf( )函數中有以下地方需要注意:
[1] 在scanf()函數中的格式字符串不存在轉義字符,所以:格式字符串中的字符除了格式字符外全部都要原樣輸入。
如:
int a;
scanf(“%d\n”,a);如果我們想把10賦值給a,就需要在鍵盤上輸入的是:
10\n回車,才能把10賦值給a,這里\n已經不是轉義字符,而是普通字符。
[2] 輸入列表的變量如果是基本類型(即整型、實型、字符型)一定要使用取地址符(輸入字符串到字符數組的情況除外),而且后必須是變量,不允許是常量或表達式。
如:
int a,b;
scanf("%d%d",a,b); 這是不合法的。Scanf函數的作用是:按照a、b在內存的地址將a、b的值存進去?!癮”指a在內存中的地址。
[3] 輸入數據時,企圖規(guī)定精度
float a;
scanf("%.2f",a);
這樣做是不合法的,輸入數據時不能規(guī)定精度,這里要記住一個程序是不能控制操作它的人來輸入數據的精度的。
[4] 輸入數據的方式與要求不符
① scanf("%d%d",a,b);
輸入時,不能用逗號作兩個數據間的分隔符,如下面輸入不合法:3,4 輸入數據時,在兩個數據之間以一個或多個空格間隔,也可用回車鍵,跳格鍵tab。
②scanf("%d,%d",a,b);
C規(guī)定:如果在“格式控制”字符串中除了格式說明以外還有其它字符,則在輸入數據時應輸入與這些字符相同的字符。下面輸入是合法的:3,4
此時不用逗號而用空格或其它字符是不對的。3 4
又如:scanf("a=%d,b=%d",a,b);
輸入應如以下形式:a=3,b=4
[5] 輸入字符的格式與要求不一致
在用“%c”格式輸入字符時,“空格字符”和“轉義字符”都作為有效字符輸入。
scanf("%c%c%c",c1,c2,c3);
如輸入a b c
字符“a”送給c1,字符“ ”送給c2,字符“b”送給c3,因為%c只要求讀入一個字符,后面不需要用空格作為兩個字符的間隔。
[6] 使用格式字符”%c”錄入單個字符時,空格和回車鍵等字符都會作為有效字符輸入,所以需要注意fflush(stdin)的使用。
[7] 注意輸入列表中的元素的個數要與格式字符串中的格式字符個數相同。
[8] 在輸入長整形數據和雙精度浮點數時,必須使用長度修飾符”l”。
[9] 不要在不該使用取地址符的地方使用取地址符。
如:char str[10];
Scanf(%c,str);這里不應該加取地址符。
(2)printf( )格式輸出函數
格式輸出函數printf( ),它的格式為printf(“格式字符串”,輸出列表)。這里的格式字符串也包含三種類型的字符,但這里和scanf( )函數的字符稍有不同。這三種類型的字符分別是:a、格式字符,以%開頭的字符,用以說明輸出列表的數據以何種格式的形式輸出。B、轉義字符,提供特殊的格式化控制,由一個“\”和一個字符組成。反斜杠會使printf( )函數以特殊的方式解釋一個字符。C、普通字符,除格式字符和轉義字符外的其他字符。
在printf( )函數中有以下地方需要注意:
[1] 輸出列表由若干個輸出項組成,輸出項可以是常量、變量,也可以是表達式。
[2] 格式字符串中的格式字符要與后邊輸出列表中的元素類型一一對應。
如:
float a=1.9999;
printf("%d",a);最終的輸出結果是一些亂碼。
再如:
int a=12;
printf("%f",a);最終的輸出結果是0.000000,這里沒有進行類型轉換。
但是,如果想把上面的整數a以浮點數的形式輸出,必須進行強制類型轉換。如:
int a=12;
printf("%f",(float)a);輸出的結果是12.000000。
[3] 格式字符串中的格式字符的個數要與輸出列表中的元素個數相同。
如:
int a=12;
printf("%d, %d",a);將在屏幕上輸出一個12以及一個亂碼。
[4] 在以%.nf這樣的格式進行輸出浮點數時,有四舍五入。
如:
float a=1.9999;
printf(“%.2f”,a);最終的輸出結果是2.00。
[5] 長度修飾符“l(fā)”在輸出長整形數據時可不要,因為在VC中,long和int占用的字節(jié)長度都是4,所有可以不加上“l(fā)”。
[6] 格式符%±nd中,n表示一個十進制整數輸出時在屏幕上占n個字符的寬度,如果n前面是+號,則表示輸出的整數右對齊,那么輸出的整數左邊補空格;如果n前面是-號,則表示輸出的整數左對齊,輸出的整數右邊補空格。
[7] 在-128~127之間的整數可以以字符的格式輸出,字符也可以以整型的格式輸出。
如:
int a=97;
printf("%c",a);輸出的結果是’a’,因為‘a’存儲在內存中是以ASCII碼的形式存儲的。
再如:
char a='a';
printf("%d",a);輸出的結果是97,原因同上。
(二) 單字符輸入、輸出函數
C語言提供了兩個無格式控制的,專門用于輸入、輸出單個字符的函數getchar( )和putchar( )。
(1) 單字符輸入函數getchar( )
[1] getchar( )函數沒有參數,有返回值,返回的就是輸入的那個字符。
[2] getchar( )函數一次只能接收一個字符。
[3] getchar( )函數同樣將空格和回車鍵等字符都會作為有效字符輸入,所以注意和fflush(stdin)函數的結合使用。
(2) 單字符輸出函數putchar( )
[1] putchar()函數有參數,無返回值。參數就是它要輸出的那個字符,可以是字符變量或著字符常量
[2] putchar()函數一次向顯示器輸出一個字符。
(三) 字符串輸入、輸出函數
C語言還提供了兩個無格式控制的專門對字符串處理的函數,gets( )和puts( )。
(1) gets( )用來接收用戶輸入的字符串,這是個有參數的函數,參數是一個字符數組類型,輸入的字符串通過傳址的方式傳到這個字符數組中。
(2) puts()用來向用戶顯示一個字符串,它需要一個字符串參數,顯示該參數并自動換行。
如:
puts(“hello, world.”);與printf(“hello,world.\n”);的效果相同,如果是puts(“hello.world.\n”)則要輸出兩個換行。也就是說,puts( )中的字符串可以包含轉義字符。
輸入字符串:
scanf("%s",in_buff);
——可以格式化輸入;第二個參數是地址,可以是字符指針或者字符數組;不提供字符數組數據越界檢查;以回車結束輸入。
gets(in_buff);
——參數為地址,可以使字符指針或者字符數組;不提供字符數組越界檢查;以回車結束輸入。
fgets(in_buff,BUFFER_SIZE + 1,stdin);
——參數1為字符指著或者字符數組,參數2為要輸入的字符個數,+1表示字符串結束標志,參數3為標準是輸入;提供越界檢查,以buffer_size+1為標準;以回車結束輸入。
輸入字符:
getch();
——從控制臺讀取一個字符,但是不回顯在屏幕上;不需要回車結束。
getche();
——從控制臺讀取一個字符,回顯屏幕;不需要回車結束。
getchar();
——從控制臺讀取一個字符,回顯屏幕;需要回車結束(如果連續(xù)使用該函數,要注意下次調用該函數,會讀取上次輸入的回車符)。
scanf("%c",char *);
——從控制臺讀取一個字符,回顯屏幕;需要回車結束(注意事項同上)。
這就是C語言中常用到的幾個輸入輸出函數,而且這幾個函數都包含在stdio.h頭文件中。在這幾個函數中,格式輸入輸出的用途最多也最容易出問題,希望提起大家的注意。
C語言輸入輸出函數有很多,標準I/O函數中包含了如下幾個常用的函數:
scanf,printf,getc,putc,getchar,putchar,gets,puts,fgets,fputs,fgetc,fputc,fscanf,fprintf等.
int
scanf(const
char
*format,
arg_list)
scanf主要從標準輸入流中獲取參數值,format為指定的參數格式及參數類型,如scanf("%s,%d",str,icount);
它要求在標準輸入流中輸入類似"son
of
bitch,1000"這樣的字符串,同時程序會將"son
of
bitch"給str,1000給icount.
scanf函數的返回值為int值,即成功賦值的個數,在上例中如果函數調用成功,則會返回2,所以我們在寫程序時,可以通過
語句if(scanf("%s,%d",str,icount)
!=
2){...}來判斷用戶輸入是否正確.
int
printf(const
char
*format,
arg_list)
printf主要是將格式化字符串輸出到標準輸出流中,在stdio.h頭文件中定義了標準的輸入和輸出,分別是stdin,stdout.
arg_list可以是變量名,也可以是表達式,但最終都會以值的形式填充進format中.
int
getc(FILE
*fp)
getc主要是從文件中讀出一個字符.常用的判斷文件是否讀取結束的語句為:(ch
=
getc(fp))
!=
EOF.EOF為文件結束標志,
定義在stdio.h中,就像EXIT_SUCCESS,EXIT_FAILURE定義在stdlib.h中一樣,文件也可以被理解為一種流,所以當fp為stdin
時,getc(stdin)就等同于getchar()了.
int
putc(int
ch,FILE
*fp)
putc主要是把字符ch寫到文件fp中去.如果fp為stdout,則putc就等同于putchar()了.
int
getchar(void)
getchar主要是從標準輸入流讀取一個字符.默認的標準輸入流即stdio.h中定義的stdin.但是從輸入流中讀取字符時又
涉及到緩沖的問題,所以并不是在屏幕中敲上一個字符程序就會運行,一般是通過在屏幕上敲上回車鍵,然后將回車前的字符
串放在緩沖區(qū)中,getchar就是在緩沖區(qū)中一個一個的讀字符.當然也可以在while循環(huán)中指定終止字符,如下面的語句:
while
((c
=
getchar())
!=
'#')這是以#來結束的.
int
putchar(int
ch)
putchar(ch)主要是把字符ch寫到標準流stdout中去.
char
*
gets(char
*str)
gets主要是從標準輸入流讀取字符串并回顯,讀到換行符時退出,并會將換行符省去.
int
puts(char
*str)
puts主要是把字符串str寫到標準流stdout中去,并會在輸出到最后時添加一個換行符.
char
*fgets(char
*str,
int
num,
FILE
*fp)
str是存放讀入的字符數組指針,num是最大允許的讀入字符數,fp是文件指針.fgets的功能是讀一行字符,該行的字符數
不大于num-1.因為fgets函數會在末尾加上一個空字符以構成一個字符串.另外fgets在讀取到換行符后不會將其省略.
int
fputs(char
*str,
file
*fp)
fputs將str寫入fp.fputs與puts的不同之處是fputs在打印時并不添加換行符.
int
fgetc(FILE
*fp)
fgetc從fp的當前位置讀取一個字符.
int
fputc(int
ch,
file
*fp)
fputc是將ch寫入fp當前指定位置.
int
fscanf(FILE
*fp,
char
*format,...)
fscanf按照指定格式從文件中出讀出數據,并賦值到參數列表中.
int
fprintf(FILE
*fp,
char
*format,...)
fprintf將格式化數據寫入流式文件中.
網站標題:c語言中四大內置輸出函數,c語言中四大內置輸出函數有哪些
網頁地址:http://jinyejixie.com/article30/hsiipo.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供App設計、網頁設計公司、營銷型網站建設、微信小程序、域名注冊、網站營銷
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)