新聞中心
c語言如何在一個文檔中讀出幾個“中文”用fgets,fopen fclose等簡單函數(shù),求代碼。。。最好簡單點。。
main()
員工經(jīng)過長期磨合與沉淀,具備了協(xié)作精神,得以通過團隊的力量開發(fā)出優(yōu)質(zhì)的產(chǎn)品。成都創(chuàng)新互聯(lián)公司堅持“專注、創(chuàng)新、易用”的產(chǎn)品理念,因為“專注所以專業(yè)、創(chuàng)新互聯(lián)網(wǎng)站所以易用所以簡單”。公司專注于為企業(yè)提供成都網(wǎng)站設(shè)計、做網(wǎng)站、微信公眾號開發(fā)、電商網(wǎng)站開發(fā),成都微信小程序,軟件按需網(wǎng)站開發(fā)等一站式互聯(lián)網(wǎng)企業(yè)服務(wù)。
{
FILE *wj;char a[200];char ch[200];//文件變量,路徑變量,暫時儲存字符的變量
scanf("%d",a);//輸入路徑
wj=fopen(name,"rb");//打開文件
while(!(feof(wj)))//如果沒有讀到結(jié)尾執(zhí)行{}內(nèi)的
{
ch=fgets(wj);//從里面讀取一個字符
putchar(ch);//將這份字符顯示出來
}
fclose(wj);//關(guān)閉文件
}
C語言 函數(shù)有哪些 中文翻譯都是什么意思
1.i/o函數(shù)
(1)scanf函數(shù):
int
scanf(const
char
*format…..);
從標(biāo)準(zhǔn)輸入流stdin中按格式format將數(shù)據(jù)寫到參數(shù)表中;若操作成功,返回寫到參數(shù)表中的參數(shù)個數(shù),否則返回eof;
注意以下幾點:
①scanf函數(shù)沒有精度控制
如出現(xiàn):
scanf(“%6.2f”,a);
是絕對錯誤的
②在以%c格式輸入字符數(shù)據(jù)時,所有輸入的均為有效字符
如:
scanf(“%c%c%c”,a,b,c);
輸入:d
e
f
則a=’d’,b為空格字符'
',c=’d’
如果以%s讀入字符串,則空格鍵和回車鍵都可以作為輸入結(jié)束的標(biāo)志
如:
scanf(“%s%s”,p,q);---------p,q均為指針
輸入:hello
world與
hello
world
效果是相同的,p均指向hello這個字符串,q均指向world這個字符串
③如果在格式控制字符串中有非格式字符,則輸入時要照原樣入;
如:
scanf(“%d,%d,%d,”,,b,c);
則輸入時必須加上逗號:5,6,7
④如果同while配合用的話,則需注意去掉回車鍵
如有下面一段程序:
while(scanf(“%d”,n)==1n!=0)
{
char
ch;
scanf(“%c”,ch);
printf(“%c\n”,ch);
}
則輸出結(jié)果是:
2
3
結(jié)果表明ch字符是回車鍵
所以如果要消除影響:
有兩種方法:
1)加上getchar();
while(scanf(“%d”,n)==1n!=0)
{
getchar();
char
ch;
scanf(“%c”,ch);
printf(“%c\n”,ch);
}
2)在while中加上%*c
while(scanf(“%d%*c”,n)==1n!=0)即可
2.數(shù)學(xué)函數(shù)
(1)求絕對值
double
fabs(double
);
float
fabsf(float);
long
double
fabsl(long
double);
int
abs(int);
long
int
labs(long
int);
(2)floor函數(shù):返回不大于參數(shù)的整數(shù)
float
floor(float);
double
floor(double);
(3)ceil函數(shù):返回不小于參數(shù)的整數(shù)
float
ceil(float);
double
floor(double);
(4)pow:返回x^y;
double
pow(double
x,double
y);
(5)sqrt:返回x的開方
double
sqrt(double
x);
(6)log2,log10:返回底數(shù)的自然對數(shù)值
double
log2(double
x);
double
log10(double
x);
3.字符串處理函數(shù)
(1)char
*strchr(const
char
*str,int
ch);
返回str中第一次出現(xiàn)字符ch的位置指針,否則返回null;
(2)char
*strstr(const
char
*str1,const
char
*str2);
返回str1中第一次出現(xiàn)str2的位置指針,否則返回null;
(3)int
stricmp(const
char
*str1,const
char
*str2);
忽略字符的大小寫進(jìn)行比較
(4)int
strncmp(const
char
*str1,const
char
*str2,int
count);
將str1前n個字符與str2的前n個字符進(jìn)行比較
(5)char
*strncpy(char
*str1,const
char
*str2,int
count);
將str2的前n個字符復(fù)制到str1中
(6)char
*strrev(char
*str);
將字符串str逆序,并返回逆置后的結(jié)果
4.常用使用函數(shù)
(1)double
atof(const
char
*str);
將字符串str表示的數(shù)轉(zhuǎn)換成浮點數(shù)
(2)int
atoi(const
char
*str);
將字符串str表示的數(shù)轉(zhuǎn)換成整數(shù)
(3)void
qsort(void
*buf,int
count,int
size,cmp);————count為所需要進(jìn)行排序的元素個數(shù),size為每個元素所占用的空間
快速排序
C語言函數(shù)調(diào)用問題! 輸出是一堆亂碼!不復(fù)雜!大俠進(jìn)??!
fscanf(fp1,"%s%s%s%d",a[i].sname,a[i].gname,a[i].htown,a[i].idnum);
/*為什么又使用fprintf? */
fprintf(fp1,"%s%s%s%d",a[i].sname,a[i].gname,a[i].htown,a[i].idnum);
/* fp1 指向的是文本文件,為什么使用二進(jìn)制讀??? */
fread(a[i],sizeof(a[i]),1,fp1);
C語言中的函數(shù)調(diào)用定義..........高人解釋下
函數(shù)的調(diào)用
8.4.1 函數(shù)調(diào)用的一般形式
前面已經(jīng)說過,在程序中是通過對函數(shù)的調(diào)用來執(zhí)行函數(shù)體的,其過程與其它語言的子程序調(diào)用相似。
C語言中,函數(shù)調(diào)用的一般形式為:
函數(shù)名(實際參數(shù)表)
對無參函數(shù)調(diào)用時則無實際參數(shù)表。實際參數(shù)表中的參數(shù)可以是常數(shù),變量或其它構(gòu)造類型數(shù)據(jù)及表達(dá)式。各實參之間用逗號分隔。
8.4.2 函數(shù)調(diào)用的方式
在C語言中,可以用以下幾種方式調(diào)用函數(shù):
1. 函數(shù)表達(dá)式:函數(shù)作為表達(dá)式中的一項出現(xiàn)在表達(dá)式中,以函數(shù)返回值參與表達(dá)式的運算。這種方式要求函數(shù)是有返回值的。例如:z=max(x,y)是一個賦值表達(dá)式,把max的返回值賦予變量z。
2. 函數(shù)語句:函數(shù)調(diào)用的一般形式加上分號即構(gòu)成函數(shù)語句。例如: printf ("%d",a);scanf ("%d",b);都是以函數(shù)語句的方式調(diào)用函數(shù)。
3. 函數(shù)實參:函數(shù)作為另一個函數(shù)調(diào)用的實際參數(shù)出現(xiàn)。這種情況是把該函數(shù)的返回值作為實參進(jìn)行傳送,因此要求該函數(shù)必須是有返回值的。例如: printf("%d",max(x,y)); 即是把max調(diào)用的返回值又作為printf函數(shù)的實參來使用的。在函數(shù)調(diào)用中還應(yīng)該注意的一個問題是求值順序的問題。所謂求值順序是指對實參表中各量是自左至右使用呢,還是自右至左使用。對此,各系統(tǒng)的規(guī)定不一定相同。介紹printf 函數(shù)時已提到過,這里從函數(shù)調(diào)用的角度再強調(diào)一下。
【例8.3】
main()
{
int i=8;
printf("%d\n%d\n%d\n%d\n",++i,--i,i++,i--);
}
如按照從右至左的順序求值。運行結(jié)果應(yīng)為:
8
7
7
8
如對printf語句中的++i,--i,i++,i--從左至右求值,結(jié)果應(yīng)為:
9
8
8
9
應(yīng)特別注意的是,無論是從左至右求值, 還是自右至左求值,其輸出順序都是不變的, 即輸出順序總是和實參表中實參的順序相同。由于Turbo C現(xiàn)定是自右至左求值,所以結(jié)果為8,7,7,8。上述問題如還不理解,上機一試就明白了。
8.4.3 被調(diào)用函數(shù)的聲明和函數(shù)原型
在主調(diào)函數(shù)中調(diào)用某函數(shù)之前應(yīng)對該被調(diào)函數(shù)進(jìn)行說明(聲明),這與使用變量之前要先進(jìn)行變量說明是一樣的。在主調(diào)函數(shù)中對被調(diào)函數(shù)作說明的目的是使編譯系統(tǒng)知道被調(diào)函數(shù)返回值的類型,以便在主調(diào)函數(shù)中按此種類型對返回值作相應(yīng)的處理。
其一般形式為:
類型說明符 被調(diào)函數(shù)名(類型 形參,類型 形參…);
或為:
類型說明符 被調(diào)函數(shù)名(類型,類型…);
括號內(nèi)給出了形參的類型和形參名,或只給出形參類型。這便于編譯系統(tǒng)進(jìn)行檢錯,以防止可能出現(xiàn)的錯誤。
例8.1 main函數(shù)中對max函數(shù)的說明為:
int max(int a,int b);
或?qū)憺?
int max(int,int);
C語言中又規(guī)定在以下幾種情況時可以省去主調(diào)函數(shù)中對被調(diào)函數(shù)的函數(shù)說明。
1) 如果被調(diào)函數(shù)的返回值是整型或字符型時,可以不對被調(diào)函數(shù)作說明,而直接調(diào)用。這時系統(tǒng)將自動對被調(diào)函數(shù)返回值按整型處理。例8.2的主函數(shù)中未對函數(shù)s作說明而直接調(diào)用即屬此種情形。
2) 當(dāng)被調(diào)函數(shù)的函數(shù)定義出現(xiàn)在主調(diào)函數(shù)之前時,在主調(diào)函數(shù)中也可以不對被調(diào)函數(shù)再作說明而直接調(diào)用。例如例8.1中,函數(shù)max的定義放在main 函數(shù)之前,因此可在main函數(shù)中省去對max函數(shù)的函數(shù)說明int max(int a,int b)。
3) 如在所有函數(shù)定義之前,在函數(shù)外預(yù)先說明了各個函數(shù)的類型,則在以后的各主調(diào)函數(shù)中,可不再對被調(diào)函數(shù)作說明。例如:
char str(int a);
float f(float b);
main()
{
……
}
char str(int a)
{
……
}
float f(float b)
{
……
}
其中第一,二行對str函數(shù)和f函數(shù)預(yù)先作了說明。因此在以后各函數(shù)中無須對str和f函數(shù)再作說明就可直接調(diào)用。
4) 對庫函數(shù)的調(diào)用不需要再作說明,但必須把該函數(shù)的頭文件用include命令包含在源文件前部。
8.5 函數(shù)的嵌套調(diào)用
C語言中不允許作嵌套的函數(shù)定義。因此各函數(shù)之間是平行的,不存在上一級函數(shù)和下一級函數(shù)的問題。但是C語言允許在一個函數(shù)的定義中出現(xiàn)對另一個函數(shù)的調(diào)用。這樣就出現(xiàn)了函數(shù)的嵌套調(diào)用。即在被調(diào)函數(shù)中又調(diào)用其它函數(shù)。這與其它語言的子程序嵌套的情形是類似的。其關(guān)系可表示如圖。
圖表示了兩層嵌套的情形。其執(zhí)行過程是:執(zhí)行main函數(shù)中調(diào)用a函數(shù)的語句時,即轉(zhuǎn)去執(zhí)行a函數(shù),在a函數(shù)中調(diào)用b 函數(shù)時,又轉(zhuǎn)去執(zhí)行b函數(shù),b函數(shù)執(zhí)行完畢返回a函數(shù)的斷點繼續(xù)執(zhí)行,a函數(shù)執(zhí)行完畢返回main函數(shù)的斷點繼續(xù)執(zhí)行。
【例8.4】計算s=22!+32!
本題可編寫兩個函數(shù),一個是用來計算平方值的函數(shù)f1,另一個是用來計算階乘值的函數(shù)f2。主函數(shù)先調(diào)f1計算出平方值,再在f1中以平方值為實參,調(diào)用 f2計算其階乘值,然后返回f1,再返回主函數(shù),在循環(huán)程序中計算累加和。
long f1(int p)
{
int k;
long r;
long f2(int);
k=p*p;
r=f2(k);
return r;
}
long f2(int q)
{
long c=1;
int i;
for(i=1;i=q;i++)
c=c*i;
return c;
}
main()
{
int i;
long s=0;
for (i=2;i=3;i++)
s=s+f1(i);
printf("\ns=%ld\n",s);
}
在程序中,函數(shù)f1和f2均為長整型,都在主函數(shù)之前定義,故不必再在主函數(shù)中對f1和f2加以說明。在主程序中,執(zhí)行循環(huán)程序依次把i值作為實參調(diào)用函數(shù)f1求i2值。在f1中又發(fā)生對函數(shù)f2的調(diào)用,這時是把i2的值作為實參去調(diào)f2,在f2 中完成求i2!的計算。f2執(zhí)行完畢把C值(即i2!)返回給f1,再由f1返回主函數(shù)實現(xiàn)累加。至此,由函數(shù)的嵌套調(diào)用實現(xiàn)了題目的要求。由于數(shù)值很大,所以函數(shù)和一些變量的類型都說明為長整型,否則會造成計算錯誤。
網(wǎng)站題目:c語言函數(shù)調(diào)用一堆中文 c語言調(diào)用函數(shù)的編程例子
文章源于:http://fisionsoft.com.cn/article/ddspppd.html