欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

c語(yǔ)言編程存檔函數(shù) c語(yǔ)言存儲(chǔ)文件代碼

用C語(yǔ)言寫了一個(gè)小游戲(飛行棋 - 投骰子,投出幾走幾步),怎么實(shí)現(xiàn)游戲的存檔與讀檔?

呵呵,這個(gè)不算難!

成都創(chuàng)新互聯(lián)專注于企業(yè)營(yíng)銷型網(wǎng)站、網(wǎng)站重做改版、吳中網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5技術(shù)商城網(wǎng)站制作、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為吳中等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。

簡(jiǎn)單點(diǎn)就用ifstream和ofstream

具體用法

//預(yù)處理:

#include fstream

//聲明函數(shù)

ifstream fin ("game.txt");/*這里的fin可以替換用任意函數(shù)名替換.必須先在該游戲目錄下創(chuàng)建存檔,才可讀取。(“”)中只用輸入文件名,這里是搜索該游戲所在的文件夾中的文件,即你的游戲.exe存在了program files里,運(yùn)行ifstream fin("game.txt");之后dos會(huì)在programfiles里尋找game.txt文件。

//使用

fina;//具體方法不多說(shuō),跟cin一樣

//停止使用

fin.close();//注意!為減少不必要的內(nèi)存消耗,請(qǐng)一定要加fin.close()

上面提到的是讀取

下面還有存檔

#include fstream

//聲明函數(shù)

ofstream fout ("game.txt");/*這里的fout可以替換用任意函數(shù)名替換.不用先在該游戲目錄下創(chuàng)建存檔,直接調(diào)用,即可存檔。(“”)中只用輸入文件名,這里是搜索該游戲所在的文件夾中的文件,即你的游戲.exe存在了program files里,運(yùn)行ifstream fin("game.txt");之后dos會(huì)在programfiles里尋找game.txt文件。

//使用

fina;//具體方法不多說(shuō),跟cout一樣

//停止使用

fin.close();//注意!為減少不必要的內(nèi)存消耗,請(qǐng)一定要加fout.close()

Are you ready? just do it!

用c語(yǔ)言編寫學(xué)生成績(jī)檔案管理,要求:(1)輸入若干條記錄并保存文件(指學(xué)生的信息);(2)學(xué)生信息錄入

#include stdio.h

#include stdlib.h /*其它說(shuō)明*/

#include string.h /*字符串函數(shù)*/

#include time.h

#define LEN sizeof(STUDENT)

typedef struct stu /*定義結(jié)構(gòu)體數(shù)組用于緩存數(shù)據(jù)*/

{

char num[6];

char name[5];

int score[3];

int sum;

float average;

int order;

struct stu *next;

}STUDENT;

/*初始化函數(shù)*/

STUDENT *Init()

{

return NULL; /*返回空指針*/

}

/*菜單選擇函數(shù)*/

int Menu_Select()

{

int n;

struct tm *pt; /*定義時(shí)間結(jié)構(gòu)體*/

time_t t;

t=time(NULL);

pt=localtime(t); /*讀取系統(tǒng)日期并把它放到結(jié)構(gòu)體中*/

printf("\n按任一鍵進(jìn)入主菜單...... \n"); /*按任一鍵進(jìn)入主菜單*/

//getch(); /*從鍵盤讀取一個(gè)字符,但不顯示于屏幕*/

system("pause");

system("cls"); /*清屏*/

printf("********************************************************************************\n");

printf("\t\t 歡迎 Welcome to\n");

printf("\n\t\t\t 使用學(xué)生管理系統(tǒng)1.0\n");

printf("*************************************MENU***************************************\n");

printf("\t\t\t1. 輸入學(xué)生成績(jī)記錄 Enter the record\n"); /*輸入學(xué)生成績(jī)記錄*/

printf("\t\t\t2. 顯示 Print the record\n"); /*顯示*/

printf("\t\t\t3. 尋找 Search record on name\n"); /*尋找*/

printf("\t\t\t4. 刪除 Delete a record\n"); /*刪除*/

printf("\t\t\t5. 排序 Sort to make New a file\n"); /*排序*/

printf("\t\t\t6. 插入 Insert record to list\n"); /*插入*/

printf("\t\t\t7. 保存 Save the file\n"); /*保存*/

printf("\t\t\t8. 讀取 Load the file\n"); /*讀取*/

printf("\t\t\t9. 退出 Quit\n"); /*退出*/

printf("\n********************************************************************************\n");

printf("\t\t\t\t當(dāng)前系統(tǒng)日期:%d-%d-%d\n",pt-tm_year+1900,pt-tm_mon+1,pt-tm_mday); /*顯示當(dāng)前系統(tǒng)日期*/

do

{

printf("\n\t\t\t輸入你的選擇Enter your choice(1~9):");

fflush(stdin);

scanf("%d",n);

}while(n1||n9); /*如果選擇項(xiàng)不在1~9之間則重輸*/

return(n); /*返回選擇項(xiàng),主函數(shù)根據(jù)該數(shù)調(diào)用相應(yīng)的函數(shù)*/

}

/*輸入函數(shù)*/

STUDENT *Create()

{

int i,s;

STUDENT *head=NULL,*p; /* 定義函數(shù).此函數(shù)帶回一個(gè)指向鏈表頭的指針*/

system("cls");

for(;;)

{

p=(STUDENT *)malloc(LEN); /*開(kāi)辟一個(gè)新的單元*/

if(!p) /*如果指針p為空*/

{

printf("\n輸出內(nèi)存溢出. Out of memory."); /*輸出內(nèi)存溢出*/

return (head); /*返回頭指針,下同*/

}

printf("輸入學(xué)號(hào)Enter the num(0:list end):");

scanf("%s",p-num);

if(p-num[0]=='0') break; /*如果學(xué)號(hào)首字符為0則結(jié)束輸入*/

printf("輸入名字Enter the name:");

scanf("%s",p-name);

printf("請(qǐng)輸入3門成績(jī)Please enter the %d scores\n",3); /*提示開(kāi)始輸入成績(jī)*/

s=0; /*計(jì)算每個(gè)學(xué)生的總分,初值為0*/

for(i=0;i3;i++) /*3門課程循環(huán)3次*/

{

do

{

printf("成績(jī)score%d:",i+1);

scanf("%d",p-score[i]);

if(p-score[i]0 || p-score[i]100) /*確保成績(jī)?cè)?~100之間*/

printf("數(shù)據(jù)錯(cuò)誤,請(qǐng)重新輸入 Data error,please enter again.\n");

}while(p-score[i]0 || p-score[i]100);

s=s+p-score[i]; /*累加各門成績(jī)*/

}

p-sum=s; /*將總分保存*/

p-average=(float)s/3; /*先用強(qiáng)制類型轉(zhuǎn)換將s轉(zhuǎn)換成float型,再求平均值*/

p-order=0; /*未排序前此值為0*/

p-next=head; /*將頭結(jié)點(diǎn)做為新輸入結(jié)點(diǎn)的后繼結(jié)點(diǎn)*/

head=p; /*新輸入結(jié)點(diǎn)為新的頭結(jié)點(diǎn)*/

}

return(head);

}

/* 顯示全部記錄函數(shù)*/

void Print(STUDENT *head)

{

int i=0; /* 統(tǒng)計(jì)記錄條數(shù)*/

STUDENT *p; /*移動(dòng)指針*/

system("cls");

p=head; /*初值為頭指針*/

printf("\n************************************STUDENT************************************\n");

printf("-------------------------------------------------------------------------------\n");

printf("| Rec | Num | Name | Sc1 | Sc2 | Sc3 | Sum | Ave | Order |\n");

printf("-------------------------------------------------------------------------------\n");

while(p!=NULL)

{

i++;

printf("| %3d | %4s | %-4s | %3d | %3d | %3d | %3d | %4.2f | %-5d|\n",

i, p-num,p-name,p-score[0],p-score[1],p-score[2],p-sum,p-average,p-order);

p=p-next;

}

printf("-------------------------------------------------------------------------------\n");

printf("**************************************END**************************************\n");

}

/*查找記錄函數(shù)*/

void Search(STUDENT *head)

{

STUDENT *p; /* 移動(dòng)指針*/

char s[5]; /*存放姓名用的字符數(shù)組*/

system("cls");

printf("請(qǐng)輸入個(gè)姓名來(lái)查找. Please enter name for searching.\n");

scanf("%s",s);

p=head; /*將頭指針賦給p*/

while(strcmp(p-name,s) p != NULL) /*當(dāng)記錄的姓名不是要找的,或指針不為空時(shí)*/

p=p-next; /*移動(dòng)指針,指向下一結(jié)點(diǎn)*/

if(p!=NULL) /*如果指針不為空*/

{

printf("\n*************************************FOUND************************************\n");

printf("-------------------------------------------------------------------------------\n");

printf("| Num | Name | sc1 | sc2 | sc3 | Sum | Ave | Order |\n");

printf("-------------------------------------------------------------------------------\n");

printf("| %4s | %4s | %3d | %3d | %3d | %3d | %4.2f | %-5d|\n",

p-num,p-name,p-score[0],p-score[1],p-score[2],p-sum,p-average,p-order);

printf("-------------------------------------------------------------------------------\n");

printf("***************************************END**************************************\n");

}

else

printf("\n沒(méi)有該學(xué)生 There is no num %s student on the list.\n",s); /*顯示沒(méi)有該學(xué)生*/

}

/*刪除記錄函數(shù)*/

STUDENT *Delete(STUDENT *head)

{

//int n;

STUDENT *p1,*p2; /*p1為查找到要?jiǎng)h除的結(jié)點(diǎn)指針,p2為其前驅(qū)指針*/

char c,s[6]; /*s[6]用來(lái)存放學(xué)號(hào),c用來(lái)輸入字母*/

system("cls");

printf("請(qǐng)輸入要?jiǎng)h除的學(xué)號(hào) Please enter the Deleted num: ");

scanf("%s",s);

p1=p2=head; /*給p1和p2賦初值頭指針*/

while(strcmp(p1-num,s) p1 != NULL) /*當(dāng)記錄的學(xué)號(hào)不是要找的,或指針不為空時(shí)*/

{

p2=p1; /*將p1指針值賦給p2作為p1的前驅(qū)指針*/

p1=p1-next; /*將p1指針指向下一條記錄*/

}

if(strcmp(p1-num,s)==0) /*學(xué)號(hào)找到了*/

{

printf("**************************************FOUND************************************\n");

printf("-------------------------------------------------------------------------------\n");

printf("| Num | Name | sc1 | sc2 | sc3 | Sum | Ave | Order |\n");

printf("-------------------------------------------------------------------------------\n");

printf("| %4s | %4s | %3d | %3d | %3d | %3d | %4.2f | %-5d|\n",

p1-num,p1-name,p1-score[0],p1-score[1],p1-score[2],p1-sum,p1-average,p1-order);

printf("-------------------------------------------------------------------------------\n");

printf("***************************************END**************************************\n");

printf("\n是否要?jiǎng)h除,輸入Y刪除,N則退出\nAre you sure to Delete the student Y/N ?"); /*提示是否要?jiǎng)h除,輸入Y刪除,N則退出*/

for(;;)

{

scanf("%c",c);

if(c=='n'||c=='N') break; /*如果不刪除,則跳出本循環(huán)*/

if(c=='y'||c=='Y')

{

if(p1==head) /*若p1==head,說(shuō)明被刪結(jié)點(diǎn)是首結(jié)點(diǎn)*/

head=p1-next; /*把第二個(gè)結(jié)點(diǎn)地址賦予head*/

else

p2-next=p1-next; /*否則將一下結(jié)點(diǎn)地址賦給前一結(jié)點(diǎn)地址*/

//n=n-1;

printf("\n學(xué)號(hào)為(Num): %s 學(xué)生以被刪除(student have been Deleted.)\n",s);

printf("別忘了保存. Don't forget to Save.\n");break; /*刪除后就跳出循環(huán)*/

}

}

}

else

printf("\n沒(méi)有這個(gè)學(xué)生在表上\nThere is no num %s student on the list.\n",s); /*找不到該結(jié)點(diǎn)*/

return(head);

}

/*排序函數(shù)*/

STUDENT *Sort(STUDENT *head)

{

int i=0; /*保存名次*/

STUDENT *p1,*p2,*t,*temp; /*定義臨時(shí)指針*/

temp=head-next; /*將原表的頭指針?biāo)傅南乱粋€(gè)結(jié)點(diǎn)作頭指針*/

head-next=NULL; /*第一個(gè)結(jié)點(diǎn)為新表的頭結(jié)點(diǎn)*/

while(temp!=NULL) /*當(dāng)原表不為空時(shí),進(jìn)行排序*/

{

t=temp; /*取原表的頭結(jié)點(diǎn)*/

temp=temp-next; /*原表頭結(jié)點(diǎn)指針后移*/

p1=head; /*設(shè)定移動(dòng)指針p1,從頭指針開(kāi)始*/

p2=head; /*設(shè)定移動(dòng)指針p2做為p1的前驅(qū),初值為頭指針*/

while(t-averagep1-averagep1!=NULL) /*作成績(jī)平均分比較*/

{

p2=p1; /*待排序點(diǎn)值小,則新表指針后移*/

p1=p1-next;

}

if(p1==p2) /*p1==p2,說(shuō)明待排序點(diǎn)值大,應(yīng)排在首位*/

{

t-next=p1; /*待排序點(diǎn)的后繼為p*/

head=t; /*新頭結(jié)點(diǎn)為待排序點(diǎn)*/

}

else /*待排序點(diǎn)應(yīng)插入在中間某個(gè)位置p2和p1之間,如p為空則是尾部*/

{

t-next=p1; /*t的后繼是p1*/

p2-next=t; /*p2的后繼是t*/

}

}

p1=head; /*已排好序的頭指針賦給p1,準(zhǔn)備填寫名次*/

while(p1!=NULL) /*當(dāng)p1不為空時(shí),進(jìn)行下列操作*/

{

i++; /*結(jié)點(diǎn)序號(hào)*/

p1-order=i; /*將結(jié)點(diǎn)序號(hào)賦值給名次*/

p1=p1-next; /*指針后移*/

}

printf("排序成功 Sorting is sucessful.\n"); /*排序成功*/

return (head);

}

/*插入記錄函數(shù)*/

STUDENT *Insert(STUDENT *head,STUDENT *New)

{

STUDENT *p0,*p1,*p2;

//int n;

int sum1,i;

p1=head; /*使p1指向第一個(gè)結(jié)點(diǎn)*/

p0=New; /*p0指向要插入的結(jié)點(diǎn)*/

printf("\nPlease enter a New record.\n"); /*提示輸入記錄信息*/

printf("輸入學(xué)號(hào)Enter the num:");

scanf("%s",New-num);

printf("輸入名字Enter the name:");

scanf("%s",New-name);

printf("Please enter the %d scores.\n",3);

sum1=0; /*保存新記錄的總分,初值為0*/

for(i=0;i3;i++)

{

do

{

printf("成績(jī)score%d:",i+1);

scanf("%d",New-score[i]);

if(New-score[i]100||New-score[i]0)

printf("數(shù)據(jù)錯(cuò)誤Data error,please enter again.\n");

}while(New-score[i]100||New-score[i]0);

sum1=sum1+New-score[i]; /*累加各門成績(jī)*/

}

New-sum=sum1; /*將總分存入新記錄中*/

New-average=(float)sum1/3;

New-order=0;

if(head==NULL) /*原來(lái)的鏈表是空表*/

{

head=p0;

p0-next=NULL;

} /*使p0指向的結(jié)點(diǎn)作為頭結(jié)點(diǎn)*/

else

{

while((p0-averagep1-average)(p1-next!=NULL))

{

p2=p1; /*使p2指向剛才p1指向的結(jié)點(diǎn)*/

p1=p1-next; /*p1后移一個(gè)結(jié)點(diǎn)*/

}

if(p0-average=p1-average)

{

if(head==p1)head=p0; /*插到原來(lái)第一個(gè)結(jié)點(diǎn)之前*/

else p2-next=p0; /*插到p2指向的結(jié)點(diǎn)之后*/

p0-next=p1;

}

else

{

p1-next=p0;

p0-next=NULL;

} /*插到最后的結(jié)點(diǎn)之后*/

}

//n=n+1; /*結(jié)點(diǎn)數(shù)加1*/

head=Sort(head); /*調(diào)用排序的函數(shù),將學(xué)生成績(jī)重新排序*/

printf("\n學(xué)生Student %s 已被更新have been inserted.\n",New-name);

printf("不要忘了保存Don't forget to Save the New file.\n");

return(head);

}

/*保存數(shù)據(jù)到文件函數(shù)*/

void Save(STUDENT *head)

{

FILE *fp; /*定義指向文件的指針*/

STUDENT *p; /* 定義移動(dòng)指針*/

char outfile[10];

printf("輸出文件例如:c:\\score Enter outfile name,for example c:\\score\n");

scanf("%s",outfile);

if((fp=fopen(outfile,"w"))==NULL) /*為輸出打開(kāi)一個(gè)二進(jìn)制文件,為只寫方式*/

{

printf("打不開(kāi)文件Cannot open the file\n");

return; /*若打不開(kāi)則返回菜單*/

}

printf("\n保存中...Saving the file......\n");

p=head; /*移動(dòng)指針從頭指針開(kāi)始*/

while(p!=NULL) /*如p不為空*/

{

fwrite(p,LEN,1,fp); /*寫入一條記錄*/

p=p-next; /*指針后移*/

}

fclose(fp); /*關(guān)閉文件*/

printf("保存成功....Save the file successfully!\n");

}

/* 從文件讀數(shù)據(jù)函數(shù)*/

STUDENT *Load()

{

STUDENT *p1,*p2,*head=NULL; /*定義記錄指針變量*/

FILE *fp; /* 定義指向文件的指針*/

char infile[10];

printf("倒入文件例如:c:\\score Enter infile name,for example c:\\score\n");

scanf("%s",infile);

if((fp=fopen(infile,"r"))==NULL) /*打開(kāi)一個(gè)二進(jìn)制文件,為只讀方式*/

{

printf("打不開(kāi)文件Can not open the file.\n");

return(head);

}

printf("\n尋找文件...Loading the file!\n");

p1=(STUDENT *)malloc(LEN); /*開(kāi)辟一個(gè)新單元*/

if(!p1)

{

printf("內(nèi)存溢出!Out of memory!\n");

return(head);

}

head=p1; /*申請(qǐng)到空間,將其作為頭指針*/

while(!feof(fp)) /*循環(huán)讀數(shù)據(jù)直到文件尾結(jié)束*/

{

if(fread(p1,LEN,1,fp)!=1) break; /*如果沒(méi)讀到數(shù)據(jù),跳出循環(huán)*/

p1-next=(STUDENT *)malloc(LEN); /*為下一個(gè)結(jié)點(diǎn)開(kāi)辟空間*/

if(!p1-next)

{

printf("Out of memory!\n");

return (head);

}

p2=p1; /*使p2指向剛才p1指向的結(jié)點(diǎn)*/

p1=p1-next; /*指針后移,新讀入數(shù)據(jù)鏈到當(dāng)前表尾*/

}

p2-next=NULL; /*最后一個(gè)結(jié)點(diǎn)的后繼指針為空*/

fclose(fp);

printf("\n你成功的從文件中讀取了數(shù)據(jù)!\nYou have success to read data from the file!\n");

return (head);

}

/*主函數(shù)界面*/

int main()

{

STUDENT *head,New;

head=Init(); //鏈表初始化,使head的值為NULL

for(;;) //循環(huán)無(wú)限次

{

switch(Menu_Select())

{

case 1:head=Create();break;

case 2:Print(head);break;

case 3:Search(head);break;

case 4:head=Delete(head);break;

case 5:head=Sort(head);break;

case 6:head=Insert(head,New);break; //New表示返回地址

case 7:Save(head);break;

case 8:head=Load(); break;

case 9:exit(0); //如菜單返回值為9則程序結(jié)束

}

}

return 0;

}

求C語(yǔ)言編程中常用的函數(shù)

字符處理函數(shù)

本類別函數(shù)用于對(duì)單個(gè)字符進(jìn)行處理,包括字符的類別測(cè)試和字符的大小寫轉(zhuǎn)換

頭文件 ctype.h

函數(shù)列表

函數(shù)類別 函數(shù)用途 詳細(xì)說(shuō)明

字符測(cè)試 是否字母和數(shù)字 isalnum

是否字母 isalpha

是否控制字符 iscntrl

是否數(shù)字 isdigit

是否可顯示字符(除空格外) isgraph

是否可顯示字符(包括空格) isprint

是否既不是空格,又不是字母和數(shù)字的可顯示字符 ispunct

是否空格 isspace

是否大寫字母 isupper

是否16進(jìn)制數(shù)字(0-9,A-F)字符 isxdigit

字符大小寫轉(zhuǎn)換函數(shù) 轉(zhuǎn)換為大寫字母 toupper

轉(zhuǎn)換為小寫字母 tolower

地區(qū)化

本類別的函數(shù)用于處理不同國(guó)家的語(yǔ)言差異。

頭文件 local.h

函數(shù)列表

函數(shù)類別 函數(shù)用途 詳細(xì)說(shuō)明

地區(qū)控制 地區(qū)設(shè)置 setlocale

數(shù)字格式約定查詢 國(guó)家的貨幣、日期、時(shí)間等的格式轉(zhuǎn)換 localeconv

數(shù)學(xué)函數(shù)

本分類給出了各種數(shù)學(xué)計(jì)算函數(shù),必須提醒的是ANSI C標(biāo)準(zhǔn)中的數(shù)據(jù)格式并不符合IEEE754標(biāo)準(zhǔn),一些C語(yǔ)言編譯器卻遵循IEEE754(例如frinklin C51)

頭文件 math.h

函數(shù)列表

函數(shù)類別 函數(shù)用途 詳細(xì)說(shuō)明

錯(cuò)誤條件處理 定義域錯(cuò)誤(函數(shù)的輸入?yún)?shù)值不在規(guī)定的范圍內(nèi))

值域錯(cuò)誤(函數(shù)的返回值不在規(guī)定的范圍內(nèi))

三角函數(shù) 反余弦 acos

反正弦 asin

反正切 atan

反正切2 atan2

余弦 cos

正弦 sin

正切 tan

雙曲函數(shù) 雙曲余弦 cosh

雙曲正弦 sinh

雙曲正切 tanh

指數(shù)和對(duì)數(shù) 指數(shù)函數(shù) exp

指數(shù)分解函數(shù) frexp

乘積指數(shù)函數(shù) fdexp

自然對(duì)數(shù) log

以10為底的對(duì)數(shù) log10

浮點(diǎn)數(shù)分解函數(shù) modf

冪函數(shù) 冪函數(shù) pow

平方根函數(shù) sqrt

整數(shù)截?cái)啵^對(duì)值和求余數(shù)函數(shù) 求下限接近整數(shù) ceil

絕對(duì)值 fabs

求上限接近整數(shù) floor

求余數(shù) fmod

本分類函數(shù)用于實(shí)現(xiàn)在不同底函數(shù)之間直接跳轉(zhuǎn)代碼。 頭文件 setjmp.h io.h

函數(shù)列表

函數(shù)類別 函數(shù)用途 詳細(xì)說(shuō)明

保存調(diào)用環(huán)境 setjmp

恢復(fù)調(diào)用環(huán)境 longjmp

信號(hào)處理

該分類函數(shù)用于處理那些在程序執(zhí)行過(guò)程中發(fā)生例外的情況。

頭文件 signal.h

函數(shù)列表

函數(shù)類別 函數(shù)用途 詳細(xì)說(shuō)明

指定信號(hào)處理函數(shù) signal

發(fā)送信號(hào) raise

可變參數(shù)處理

本類函數(shù)用于實(shí)現(xiàn)諸如printf,scanf等參數(shù)數(shù)量可變底函數(shù)。

頭文件 stdarg.h

函數(shù)列表

函數(shù)類別 函數(shù)用途 詳細(xì)說(shuō)明

可變參數(shù)訪問(wèn)宏 可變參數(shù)開(kāi)始宏 va_start

可變參數(shù)結(jié)束宏 va_end

可變參數(shù)訪問(wèn)宏 訪問(wèn)下一個(gè)可變參數(shù)宏 va_arg

輸入輸出函數(shù)

該分類用于處理包括文件、控制臺(tái)等各種輸入輸出設(shè)備,各種函數(shù)以“流”的方式實(shí)現(xiàn)

頭文件 stdio.h

函數(shù)列表

函數(shù)類別 函數(shù)用途 詳細(xì)說(shuō)明

文件操作

刪除文件 remove

修改文件名稱 rename

生成臨時(shí)文件名稱 tmpfile

得到臨時(shí)文件路徑 tmpnam

文件訪問(wèn) 關(guān)閉文件 fclose

刷新緩沖區(qū) fflush

打開(kāi)文件 fopen

將已存在的流指針和新文件連接 freopen

設(shè)置磁盤緩沖區(qū) setbuf

設(shè)置磁盤緩沖區(qū) setvbuf

格式化輸入與輸出函數(shù) 格式輸出 fprintf

格式輸入 fscanf

格式輸出(控制臺(tái)) printf

格式輸入(控制臺(tái)) scanf

格式輸出到緩沖區(qū) sprintf

從緩沖區(qū)中按格式輸入 sscanf

格式化輸出 vfprintf

格式化輸出 vprintf

格式化輸出 vsprintf

字符輸入輸出函數(shù) 輸入一個(gè)字符 fgetc

字符串輸入 fgets

字符輸出 fputc

字符串輸出 fputs

字符輸入(控制臺(tái)) getc

字符輸入(控制臺(tái)) getchar

字符串輸入(控制臺(tái)) gets

字符輸出(控制臺(tái)) putc

字符輸出(控制臺(tái)) putchar

字符串輸出(控制臺(tái)) puts

字符輸出到流的頭部 ungetc

直接輸入輸出 直接流讀操作 fread

直接流寫操作 fwrite

文件定位函數(shù) 得到文件位置 fgetpos

文件位置移動(dòng) fseek

文件位置設(shè)置 fsetpos

得到文件位置 ftell

文件位置復(fù)零位 remind

錯(cuò)誤處理函數(shù) 錯(cuò)誤清除 clearerr

文件結(jié)尾判斷 feof

文件錯(cuò)誤檢測(cè) ferror

得到錯(cuò)誤提示字符串 perror

實(shí)用工具函數(shù)

本分類給出了一些函數(shù)無(wú)法按以上分類,但又是編程所必須要的。

頭文件 stdlib.h

函數(shù)列表

函數(shù)類別 函數(shù)用途 詳細(xì)說(shuō)明

字符串轉(zhuǎn)換函數(shù) 字符串轉(zhuǎn)換為整數(shù) atoi

字符串轉(zhuǎn)換為長(zhǎng)整數(shù) atol

字符串轉(zhuǎn)換為浮點(diǎn)數(shù) strtod

字符串轉(zhuǎn)換為長(zhǎng)整數(shù) strtol

字符串轉(zhuǎn)換為無(wú)符號(hào)長(zhǎng)整型 strtoul

偽隨機(jī)序列產(chǎn)生函數(shù) 產(chǎn)生隨機(jī)數(shù) rand

設(shè)置隨機(jī)函數(shù)的起動(dòng)數(shù)值 srand

存儲(chǔ)管理函數(shù) 分配存儲(chǔ)器 calloc

釋放存儲(chǔ)器 free

存儲(chǔ)器分配 malloc

重新分配存儲(chǔ)器 realloc

環(huán)境通信 中止程序 abort

退出程序執(zhí)行,并清除環(huán)境變量 atexit

退出程序執(zhí)行 exit

讀取環(huán)境參數(shù) getenv

程序掛起,臨時(shí)執(zhí)行一個(gè)其他程序 system

搜索和排序工具 二分查找(數(shù)據(jù)必須已排序) bsearch

快速排序 qsort

整數(shù)運(yùn)算函數(shù) 求絕對(duì)值 abs

div

得到除法運(yùn)算底商和余數(shù)

求長(zhǎng)整形底絕對(duì)值 labs

求長(zhǎng)整形除法的商和余數(shù) ldiv

多字節(jié)字符函數(shù) 得到多字節(jié)字符的字節(jié)數(shù) mblen

得到多字節(jié)字符的字節(jié)數(shù) mbtowc

多字節(jié)字符轉(zhuǎn)換 wctomb

多字節(jié)字符的字符串操作 將多字節(jié)串轉(zhuǎn)換為整數(shù)數(shù)組 mbstowcs

將多字節(jié)串轉(zhuǎn)換為字符數(shù)組 mcstowbs

字符串處理

本分類的函數(shù)用于對(duì)字符串進(jìn)行合并、比較等操作

頭文件 string.h

函數(shù)列表

函數(shù)類別 函數(shù)用途 詳細(xì)說(shuō)明

字符串拷貝 塊拷貝(目的和源存儲(chǔ)區(qū)不可重疊) memcpy

塊拷貝(目的和源存儲(chǔ)區(qū)可重疊) memmove

串拷貝 strcpy

按長(zhǎng)度的串拷貝 strncpy

字符串連接函數(shù) 串連接 strcat

按長(zhǎng)度連接字符串 strncat

串比較函數(shù) 塊比較 memcmp

字符串比較 strcmp

字符串比較(用于非英文字符) strcoll

按長(zhǎng)度對(duì)字符串比較 strncmp

字符串轉(zhuǎn)換 strxfrm

字符與字符串查找 字符查找 memchr

字符查找 strchr

字符串查找 strcspn

字符串查找 strpbrk

字符串查找 strspn

字符串查找 strstr

字符串分解 strtok

雜類函數(shù) 字符串設(shè)置 memset

錯(cuò)誤字符串映射 strerror

求字符串長(zhǎng)度 strlen

日期和時(shí)間函數(shù)

本類別給出時(shí)間和日期處理函數(shù)

頭文件 time.h

函數(shù)列表

函數(shù)類別 函數(shù)用途 詳細(xì)說(shuō)明

時(shí)間操作函數(shù) 得到處理器時(shí)間 clock

得到時(shí)間差 difftime

設(shè)置時(shí)間 mktime

得到時(shí)間 time

時(shí)間轉(zhuǎn)換函數(shù) 得到以ASCII碼表示的時(shí)間 asctime

得到字符串表示的時(shí)間 ctime

得到指定格式的時(shí)間 strftime

函數(shù)庫(kù)未來(lái)的發(fā)展方向

本部分用于說(shuō)明各類別函數(shù)庫(kù)在將來(lái)如何發(fā)展。

序號(hào) 庫(kù)類別 頭文件 詳細(xì)說(shuō)明

1 錯(cuò)誤處理 errno.h

2 字符處理 ctype.h

3 地區(qū)化 local.h

4 數(shù)學(xué)函數(shù) math.h

5 信號(hào)處理 signal.h

6 輸入輸出 stdio.h

7 實(shí)用工具程序 stdlib.h

8 字符串處理 string.h

34

c語(yǔ)言中如何把自己編寫的函數(shù)保存以供以后調(diào)用?象庫(kù)函數(shù)那樣。

如果使用的是Dev-C++或者VC++,那么你可以新建一個(gè)Static Library工程,并在其中添加相應(yīng)代碼然后編譯成*.lib文件,在以后的工程中即可隨時(shí)引用。

當(dāng)然如果不是用這類IDE工具的話,你可以將常用函數(shù)寫到一個(gè)頭文件(*.h)中,在以后的代碼文件中可以直接通過(guò)include該頭文件來(lái)實(shí)現(xiàn)代碼重用。

以上兩種方法都需要被保存的文件(*.lib,*.h)被放在適當(dāng)目錄,一般的編譯器都有環(huán)境目錄的選項(xiàng),需要在Library Directry及Header Directry中設(shè)置一下。當(dāng)然如果不進(jìn)行設(shè)置也可以,那就需要將這些文件復(fù)制到工程所在目錄了。

網(wǎng)站題目:c語(yǔ)言編程存檔函數(shù) c語(yǔ)言存儲(chǔ)文件代碼
文章來(lái)源:http://www.chinadenli.net/article12/dddpsdc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站服務(wù)器托管定制網(wǎng)站響應(yīng)式網(wǎng)站網(wǎng)站建設(shè)

廣告

聲明:本網(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í)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司