給你兩種方法
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了東興免費(fèi)建站歡迎大家使用!
(1)return法 如果main函數(shù)沒有返回值,則 return;有則返回相應(yīng)類型的值即可
(2)ctr+Z或者ctr+D,前者為微軟操作系統(tǒng),后者是Unix系統(tǒng)中停止程序的運(yùn)行
main() // int main( ) 加上返回類型
{
double result;
FILE *data=fopen("61590_4.dat","at"); //以追加方式打開文件,若不存在此文件,則自動(dòng)創(chuàng)建
if(data==NULL)
data=fopen("61590_4.dat","wt"); //所以這里不需再創(chuàng)建了
if(data==NULL) //打開錯(cuò)誤就返回
return 0;
token[n]=getchar(); //通過鍵盤獲取一個(gè)字符,這里會(huì)暫停等待輸入,token/n未定義?
result=exp(); // 調(diào)用exp函數(shù)
if(token[n]=='\n') //若按的是回車
{
token[n]='\0'; //將n處字符設(shè)為結(jié)束符,表示字符串在此結(jié)束
printf("%s=%g\n",token,result); // 輸出結(jié)果
fprintf(data,"%s=%g\n",token,result); //將上一行輸出結(jié)果寫入到文件末尾
}
else error(); //若按的不是回車,就出錯(cuò)了,嘿嘿
fclose(data); // 關(guān)閉打開的文件
return 0; //返回
getch(); //從控制臺(tái)讀取一個(gè)字符,但不顯示在屏幕上,這一句應(yīng)該得不到執(zhí)行
}
通俗點(diǎn)說就是函數(shù)的執(zhí)行時(shí)逐行掃描讀取語句的,機(jī)器在執(zhí)行你的程序時(shí)候會(huì)先找到你的main函數(shù)(主函數(shù))
然后從主函數(shù)開始一行行讀你的語句,碰到你寫的子函數(shù)時(shí),機(jī)器對(duì)主函數(shù)的掃描暫停,轉(zhuǎn)到你的子函數(shù)具體代碼處再次一行行讀并執(zhí)行你的子函數(shù)語句,等子函數(shù)讀完了就回到你原來暫停的主函數(shù)那里,繼續(xù)讀剩下的主函數(shù),直到主函數(shù)的最后一個(gè)字符讀完,程序結(jié)束。
main()函數(shù)稱之為主函數(shù),一個(gè)C程序總是從main()函數(shù)開始執(zhí)行的,但是不一定在main函數(shù)最后結(jié)束。
在 main() 之后的最后一條語句結(jié)束后,程序還要運(yùn)行一些代碼,以正常返回操作系統(tǒng)。main函數(shù)執(zhí)行完后還執(zhí)行其他語句,
有時(shí)候需要有一種與程序退出方式無關(guān)的方法來進(jìn)行程序退出時(shí)的必要處理,方法就是用atexit()函數(shù)來注冊(cè)程序正常終止時(shí)要被調(diào)用的函數(shù),atexit()函數(shù)的參數(shù)是一個(gè)函數(shù)指針,函數(shù)指針指向一個(gè)沒有參數(shù)也沒有返回值的函數(shù),它的原型是:
int atexit(void (*)(void));
擴(kuò)展資料
main函數(shù)的使用
示例:
#include stdlib.h
#include stdio.h
void fn1(void);
void fn2(void);
int main(void)
{
atexit(fn1);
atexit(fn2);
printf("main exit ...\n");
return 0;
}
void fn1()
{
printf("calling fn1()...\n");
}
void fn2()
{
printf("calling fn2()...\n");
}
參考資料來源:百度百科—main函數(shù)
函數(shù)返回可以用return,不用也可以,但是可能會(huì)導(dǎo)致程序異常,一般建議使用return。
return 表示把程序流程從被調(diào)函數(shù)轉(zhuǎn)向主調(diào)函數(shù)并把表達(dá)式的值帶回主調(diào)函數(shù),實(shí)現(xiàn)函數(shù)值的返回,返回時(shí)可附帶一個(gè)返回值,由return后面的參數(shù)指定。
return通常是必要的,因?yàn)楹瘮?shù)調(diào)用的時(shí)候計(jì)算結(jié)果通常是通過返回值帶出的。 如果函數(shù)執(zhí)行不需要返回計(jì)算結(jié)果,也經(jīng)常需要返回一個(gè)狀態(tài)碼來表示函數(shù)執(zhí)行的順利與否(-1和0就是最常用的狀態(tài)碼),主調(diào)函數(shù)可以通過返回值判斷被調(diào)函數(shù)的執(zhí)行情況。
擴(kuò)展資料:
在函數(shù)中,如果碰到return 語句,那么程序就會(huì)返回調(diào)用該函數(shù)的下一條語句執(zhí)行,也就是說跳出函數(shù)的執(zhí)行,回到原來的地方繼續(xù)執(zhí)行下去。但是如果是在主函數(shù)中碰到return語句,那么整個(gè)程序就會(huì)停止,退出程序的執(zhí)行。
函數(shù)的返回值是由返回語句return實(shí)現(xiàn)的,函數(shù)執(zhí)行的最后一個(gè)操作就是返回,返回的意義是:
(1)子程序函數(shù)返回主調(diào)函數(shù),宣告函數(shù)的一次執(zhí)行結(jié)束,在調(diào)用期間所分配的變量單元被撤消;
(2)送函數(shù)值到調(diào)用表達(dá)式中,當(dāng)然這一點(diǎn)并不是必需的,因?yàn)橛行┖瘮?shù)有返回值,有些函數(shù)沒有返回值。