一、printf()函數(shù)
憑借整站使用H5高端網(wǎng)站建設(shè)的創(chuàng)新體驗、定制設(shè)計、設(shè)計團(tuán)隊積累與透明式的服務(wù)過程,符合行業(yè)特點,專屬顧問根據(jù)企業(yè)產(chǎn)品,消費群體屬性,準(zhǔn)確定位;設(shè)計師以目標(biāo)客戶為中心,以突出品牌官網(wǎng)特性為宗旨,定制專屬網(wǎng)站建設(shè)設(shè)計方案。
printf()函數(shù)是格式化輸出函數(shù), 一般用于向標(biāo)準(zhǔn)輸出設(shè)備按規(guī)定格式輸出
信息。在編寫程序時經(jīng)常會用到此函數(shù)。printf()函數(shù)的調(diào)用格式為:
printf("格式化字符串", 參量表);
其中格式化字符串包括兩部分內(nèi)容: 一部分是正常字符, 這些字符將按原
樣輸出; 另一部分是格式化規(guī)定字符, 以"%"開始, 后跟一個或幾個規(guī)定字符,
用來確定輸出內(nèi)容格式。
參量表是需要輸出的一系列參數(shù), 其個數(shù)必須與格式化字符串所說明的輸出
參數(shù)個數(shù)一樣多, 各參數(shù)之間用","分開, 且順序一一對應(yīng), 否則將會出現(xiàn)意想
不到的錯誤。
二、scanf()函數(shù)
scanf()函數(shù)是格式化輸入函數(shù), 它從標(biāo)準(zhǔn)輸入設(shè)備(鍵盤) 讀取輸入的信息。
其調(diào)用格式為:
scanf("格式化字符串", 地址表);
格式化字符串包括以下三類不同的字符;
1. 格式化說明符: 格式化說明符與printf()函數(shù)中的格式說明符基本相同。
2. 空白字符: 空白字符會使scanf()函數(shù)在讀操作中略去輸入中的一個或多
個空白字符。
3. 非空白字符: 一個非空白字符會使scanf()函數(shù)在讀入時剔除掉與這個非
空白字符相同的字符。
地址表是需要讀入的所有變量的地址, 而不是變量本身。這與printf()函數(shù)
完全不同, 要特別注意。各個變量的地址之間同","分開。
三。puts()和gets()函數(shù)
1. puts()函數(shù)
puts()函數(shù)用來向標(biāo)準(zhǔn)輸出設(shè)備(屏幕)寫字符串并換行, 其調(diào)用格式為:
puts(s);
其中s為字符串變量(字符串?dāng)?shù)組名或字符串指針)。
puts()函數(shù)的作用與語printf("%s\n", s)相同。
2. gets()函數(shù)
gets()函數(shù)用來從標(biāo)準(zhǔn)輸入設(shè)備(鍵盤)讀取字符串直到回車結(jié)束, 但回車符
不屬于這個字符串。其調(diào)用格式為:
gets(s);
其中s為字符串變量(字符串?dāng)?shù)組名或字符串指針)。
gets(s)函數(shù)與scanf("%s", s)相似, 但不完全相同, 使用scanf("%s", s)
函數(shù)輸入字符串時存在一個問題, 就是如果輸入了空格會認(rèn)為輸入字符串結(jié)束,
空格后的字符將作為下一個輸入項處理, 但gets() 函數(shù)將接收輸入的整個 串直到回車為止。
其實還有其他輸入輸出函數(shù)getc,putc,getch,putch,fgets,fputs,fgetc,fputc,fscanf,fprintf等.
結(jié)果是:
Please
input
a
string:The
result
is:
從main函數(shù)開始執(zhí)行,
遇到printf語句后輸出Please
input
a
string:
這時你輸入This
is
a
tree并賦給s
然后調(diào)用fun函數(shù)
此函數(shù)調(diào)用過程是:因為數(shù)組名就是數(shù)組的首地址,這時實參是把s數(shù)組的地扯傳給了形參s的,
num傳的也是數(shù)組的首地址,所以接下來如果在fun函數(shù)中對他們倆進(jìn)行了修改的話,
實際的參數(shù)也是同時進(jìn)行了修改的.
第一個for語句將數(shù)組元素都設(shè)為0
因為此時的s是指向"This
is
a
tree"這個字符數(shù)組的首地址,
其*s就是'T',當(dāng)然不等于'\0'.所以此時會讓i=-1.
剛說了*s是‘T’,所以它不與switch中任何一種情況相同。
所以它不會執(zhí)行swihch中的語句。后面的if語句不成立。因為i=-1。
最后s++,s這時指向數(shù)組下一個元素,即‘h’。
函數(shù)調(diào)完后,接著執(zhí)行下一條printf語句,輸出The
result
is:并回車
因為數(shù)組里的元素在fun函數(shù)中改過了,都是0。所以輸出的都就是五個0了。
#include
"stdio.h"
void
input(int
a[10])
//給一維數(shù)組輸入數(shù)據(jù)
{
int
i;
for(i=0;i10;i++)
scanf("%d",a[i]);
}
void
output(int
a[10])
//輸出一維數(shù)組輸入數(shù)據(jù)
{
int
i;
for(i=0;i10;i++)
printf("%d
",a[i]);
}
int
main()
{
int
b[10];
input(b);
//調(diào)用input函數(shù)給數(shù)組b賦值
output(b);//調(diào)用output函數(shù)輸出數(shù)組b中的值
}
這個算法沒有計算出具體的函數(shù)形式啊,只是代了個值。
你看一下算法就知道了,想知道函數(shù)你可以這么算L(x)。
scanf,printf,getc,putc,getchar,putchar,gets,puts,fgets,fputs,fgetc,fputc,fscanf,fprintf等.
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"這樣的字符串,同時程序會將"son of bitch"給str,1000給icount.
scanf函數(shù)的返回值為int值,即成功賦值的個數(shù),在上例中如果函數(shù)調(diào)用成功,則會返回2,所以我們在寫程序時,可以通過
語句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á)式,但最終都會以值的形式填充進(jìn)format中.
int getc(FILE *fp)
getc主要是從文件中讀出一個字符.常用的判斷文件是否讀取結(jié)束的語句為:(ch = getc(fp)) != EOF.EOF為文件結(jié)束標(biāo)志,
定義在stdio.h中,就像EXIT_SUCCESS,EXIT_FAILURE定義在stdlib.h中一樣,文件也可以被理解為一種流,所以當(dāng)fp為stdin
時,getc(stdin)就等同于getchar()了.
int putc(int ch,FILE *fp)
putc主要是把字符ch寫到文件fp中去.如果fp為stdout,則putc就等同于putchar()了.
int getchar(void)
getchar主要是從標(biāo)準(zhǔn)輸入流讀取一個字符.默認(rèn)的標(biāo)準(zhǔn)輸入流即stdio.h中定義的stdin.但是從輸入流中讀取字符時又
涉及到緩沖的問題,所以并不是在屏幕中敲上一個字符程序就會運行,一般是通過在屏幕上敲上回車鍵,然后將回車前的字符
串放在緩沖區(qū)中,getchar就是在緩沖區(qū)中一個一個的讀字符.當(dāng)然也可以在wh
C++ 對C 作了 補充,增加了 你的 輸出設(shè)想。
C語言輸出函數(shù),要求 給格式,主要是為了 滿足 多種多樣 的需求。
例如,同樣是 int 型,默認(rèn)輸入輸出 是 10 進(jìn)制,但有的人 要求 用 16進(jìn)制,有的人要求用 8 進(jìn)制。 有的人 為了 又看數(shù)的大小,又要知道 內(nèi)存里的信息排列 于是 要求 既 輸出 10進(jìn)制值,也輸出 16進(jìn)制值(16進(jìn)制 一位拉4位很容易變2進(jìn)制)。
程序例子:
int x=25;
printf("%d %x %o\n",x,x,x); // 這樣 可以輸出 x 的10進(jìn)制值,16進(jìn)制值,8進(jìn)制值。
程序例子:
int y;
printf("please input y in hex\n"); // 請按16進(jìn)制數(shù) 拍入 y 的值
scanf("%x",y); // 按16進(jìn)制數(shù), 讀入 y
printf("y=%d\n",y); // 按10進(jìn)制數(shù) 輸出 y
程序例子:
float f=1.2;
double d = 123450000;
printf("f=%g d=%g\n",f,d); // 輸出 f=1.2 d=1.2345e+008
滿足多種多樣 的需求。
------
C++, 可以用
cout x endl; 輸出 不需格式,為10進(jìn)制。
cout f " " d endl; 輸出 不需格式,
分享文章:c語言輸出函數(shù)的過程,C語言的輸出函數(shù)
網(wǎng)站URL:http://vcdvsql.cn/article14/hedgge.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、動態(tài)網(wǎng)站、網(wǎng)站收錄、靜態(tài)網(wǎng)站、響應(yīng)式網(wǎng)站、網(wǎng)站維護(hù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)