C语言文件操作函数大全
- 格式:doc
- 大小:51.00 KB
- 文档页数:8
c语⾔⽂件读写⼤全对⽂件的读和写是最常⽤的⽂件操作。
在C语⾔中提供了多种⽂件读写的函数:1. 字符读写函数:fgetc和fputc2. 字符串读写函数:fgets和fputs3. 数据块读写函数:freed和fwrite4. 格式化读写函数:fscanf和fprinf下⾯分别予以介绍。
使⽤以上函数都要求包含头⽂件stdio.h。
字符读写函数fgetc和fputc字符读写函数是以字符(字节)为单位的读写函数。
每次可从⽂件读出或向⽂件写⼊⼀个字符。
1) 读字符函数fgetcfgetc函数的功能是从指定的⽂件中读⼀个字符,函数调⽤的形式为:字符变量=fgetc(⽂件指针);例如:ch=fgetc(fp);其意义是从打开的⽂件fp中读取⼀个字符并送⼊ch中。
对于fgetc函数的使⽤有以下⼏点说明:在fgetc函数调⽤中,读取的⽂件必须是以读或读写⽅式打开的。
读取字符的结果也可以不向字符变量赋值。
例如:fgetc(fp); 但是读出的字符不能保存。
在⽂件内部有⼀个位置指针。
⽤来指向⽂件的当前读写字节。
在⽂件打开时,该指针总是指向⽂件的第⼀个字节。
使⽤fgetc 函数后,该位置指针将向后移动⼀个字节。
因此可连续多次使⽤fgetc函数,读取多个字符。
应注意⽂件指针和⽂件内部的位置指针不是⼀回事。
⽂件指针是指向整个⽂件的,须在程序中定义说明,只要不重新赋值,⽂件指针的值是不变的。
⽂件内部的位置指针⽤以指⽰⽂件内部的当前读写位置,每读写⼀次,该指针均向后移动,它不需在程序中定义说明,⽽是由系统⾃动设置的。
【例13-1】读⼊⽂件c1.doc,在屏幕上输出。
1. #include<stdio.h>2. main(){3. FILE *fp;4. char ch;5. if((fp=fopen("d:\\jrzh\\example\\c1.txt","rt"))==NULL){6. printf("\nCannot open file strike any key exit!");7. getch();8. exit(1);9. }10. ch=fgetc(fp);11. while(ch!=EOF){12. putchar(ch);13. ch=fgetc(fp);14. }15. fclose(fp);16. }本例程序的功能是从⽂件中逐个读取字符,在屏幕上显⽰。
C语言库函数使用大全C语言是一种面向过程的编程语言,它提供了大量的库函数来方便开发者进行各种操作。
在本篇文章中,我将介绍一些常用的C语言库函数,并说明它们的使用方法。
1.字符串处理函数:- strlen:用于计算字符串的长度。
- strcat:用于将两个字符串连接起来。
- strcpy:用于将一个字符串复制到另一个字符串中。
- strcmp:用于比较两个字符串是否相等。
2.数学函数:- abs:返回一个整数的绝对值。
- sqrt:返回一个数的平方根。
- pow:计算一个数的指定次幂。
- rand:生成一个随机数。
3.输入输出函数:- printf:用于打印输出。
- scanf:用于接受用户的输入。
- getchar:用于从输入流中读取一个字符。
- putchar:用于将一个字符输出到屏幕上。
4.内存管理函数:- malloc:用于在堆中分配指定大小的内存块。
- free:用于释放之前分配的内存。
- calloc:可以在堆中分配指定数量和大小的内存,并将每个字节初始化为0。
- realloc:用于调整之前分配的内存块的大小。
5.时间日期函数:6.文件操作函数:- fopen:用于打开一个文件。
- fclose:用于关闭一个文件。
- fgets:从文件中读取一行字符串。
- fputs:向文件中写入一行字符串。
7.数组处理函数:- memset:将一个数组的所有元素设置为指定的值。
- memcpy:将一个数组的内容复制到另一个数组中。
- memmove:将一个数组的内容移动到另一个数组中,处理重叠情况。
- qsort:用于对数组进行快速排序。
这只是C语言库函数的一小部分,还有很多其他函数可供使用。
在实际开发中,根据需求选择适合的函数,可以提高代码的效率和可读性。
总结:C语言库函数提供了丰富的功能,可以帮助开发者简化编程过程。
在使用库函数时,需要仔细阅读函数的说明文档,并根据需求选择适合的函数和参数。
通过充分利用库函数,可以提高代码的开发效率和质量。
C语言文件操作函数大全clearerr(清除文件流的错误旗标)相关函数 feof表头文件 #include<stdio.h>定义函数 void clearerr(FILE * stream);函数说明 clearerr()清除参数stream指定的文件流所使用的错误旗标。
返回值fclose(关闭文件)相关函数 close,fflush,fopen,setbuf表头文件 #include<stdio.h>定义函数 int fclose(FILE * stream);函数说明 fclose()用来关闭先前fopen()打开的文件。
此动作会让缓冲区内的数据写入文件中,并释放系统所提供的文件资源。
返回值若关文件动作成功则返回0,有错误发生时则返回EOF并把错误代码存到errno。
错误代码 EBADF表示参数stream非已打开的文件。
范例请参考fopen()。
fdopen(将文件描述词转为文件指针)相关函数 fopen,open,fclose表头文件 #include<stdio.h>定义函数 FILE * fdopen(int fildes,const char * mode);函数说明 fdopen()会将参数fildes 的文件描述词,转换为对应的文件指针后返回。
参数mode 字符串则代表着文件指针的流形态,此形态必须和原先文件描述词读写模式相同。
关于mode 字符串格式请参考fopen()。
返回值转换成功时返回指向该流的文件指针。
失败则返回NULL,并把错误代码存在errno中。
范例#include<stdio.h>main(){FILE * fp =fdopen(0,”w+”);fprintf(fp,”%s\n”,”hello!”);fclose(fp);}执行 hello!feof(检查文件流是否读到了文件尾)相关函数 fopen,fgetc,fgets,fread表头文件 #include<stdio.h>定义函数 int feof(FILE * stream);函数说明 feof()用来侦测是否读取到了文件尾,尾数stream为fopen()所返回之文件指针。
c 标准库函数手册C 标准库函数手册。
C 标准库函数是 C 语言提供的一组函数库,它包含了一系列常用的函数,可以帮助程序员更高效地完成各种任务。
本手册将介绍 C 标准库函数的常用函数及其用法,帮助读者更加深入地理解和运用这些函数。
一、stdio.h。
stdio.h 是 C 语言中用来进行输入输出操作的头文件,它包含了一系列与标准输入输出相关的函数。
其中,最常用的函数包括 printf、scanf、fopen、fclose 等。
这些函数可以帮助程序员进行屏幕输出、键盘输入、文件读写等操作。
例如,printf 函数可以用来向屏幕输出格式化的字符串,而 scanf 函数则可以用来从键盘接收输入并存储到变量中。
二、stdlib.h。
stdlib.h 是 C 语言中的标准库头文件之一,它包含了一系列与内存分配、随机数生成、字符串转换等功能相关的函数。
其中,最常用的函数包括 malloc、free、rand、atoi 等。
这些函数可以帮助程序员进行动态内存分配、随机数生成、字符串转换等操作。
例如,malloc 函数可以用来动态分配指定大小的内存空间,而 rand 函数则可以用来生成一个指定范围内的随机数。
三、math.h。
math.h 是 C 语言中的标准数学库头文件,它包含了一系列与数学运算相关的函数。
其中,最常用的函数包括 sin、cos、sqrt、pow 等。
这些函数可以帮助程序员进行各种数学运算,如三角函数计算、平方根计算、幂运算等。
例如,sin 函数可以用来计算给定角度的正弦值,而 sqrt 函数则可以用来计算一个数的平方根。
四、string.h。
string.h 是 C 语言中的标准字符串库头文件,它包含了一系列与字符串操作相关的函数。
其中,最常用的函数包括 strlen、strcpy、strcat、strcmp 等。
这些函数可以帮助程序员进行字符串的长度计算、复制、连接、比较等操作。
例如,strlen 函数可以用来计算一个字符串的长度,而 strcpy 函数则可以用来将一个字符串复制到另一个字符串中。
C语言文件操作与输入输出随着计算机科学和编程的不断发展,文件操作和输入输出(I/O)是编程中非常重要的方面之一。
C语言作为一种广泛应用于系统软件和嵌入式开发的高级编程语言,也提供了一系列的函数和库来处理文件操作和输入输出。
本文将介绍C语言中的文件操作以及输入输出的相关知识。
一、文件概念及文件操作1. 文件概念在计算机领域中,文件是用于存储和组织数据的一种重要方式。
可以将文件看作是一种包含了数据的序列,这些数据可以是文本、图像、音频等形式。
在C语言中,文件以字节流的形式进行读取和写入。
2. 文件操作函数C语言提供了丰富的文件操作函数,用于打开、关闭、读取和写入文件。
下面是一些常用的文件操作函数:- fopen():用于打开文件,并返回一个指向该文件的指针。
- fclose():用于关闭文件。
- fgetc():用于从文件中读取一个字符。
- fputc():用于向文件中写入一个字符。
- fgets():用于从文件中读取一行文本。
- fputs():用于向文件中写入一行文本。
- fread():用于从文件中读取一定数量的数据块。
- fwrite():用于向文件中写入一定数量的数据块。
3. 文件打开模式在使用fopen()函数打开文件时,我们需要指定文件的打开模式。
常见的文件打开模式有:- "r":只读模式,用于读取文件的内容。
- "w":写入模式,如果文件不存在则创建文件,如果文件已存在则清空文件内容。
- "a":追加模式,用于向文件末尾追加内容。
- "rb":二进制只读模式,用于读取二进制文件。
- "wb":二进制写入模式,用于写入二进制文件。
二、输入输出(I/O)1. 标准输入输出C语言提供了三个标准的文件指针,它们分别是stdin、stdout和stderr。
它们对应于标准输入、标准输出和标准错误输出。
C语言文件操作函数大全1. `fopen`:打开文件```FILE* fopen(const char* filename, const char* mode);```该函数用于打开一个文件,成功打开返回文件指针,打开失败返回`NULL`。
`filename` 是要打开的文件名,`mode` 是打开模式,常用的模式有 "r"(只读)、"w"(可写,若文件不存在则创建新文件)、"a"(追加模式)。
2. `fclose`:关闭文件```int fclose(FILE* stream);```该函数用于关闭一个文件,成功关闭返回0,关闭失败返回 `EOF`。
`stream` 是要关闭的文件指针。
3. `fread`:读取文件内容```size_t fread(void* ptr, size_t size, size_t count, FILE* stream);```该函数从文件中读取内容,存储到指定的内存块。
`ptr` 是指向要读取数据的内存块的指针,`size` 是每个数据项的大小,`count` 是要读取的数据项数目。
4. `fwrite`:写入文件内容```size_t fwrite(const void* ptr, size_t size, size_t count, FILE* stream);```该函数将指定的内存块内容写入文件。
`ptr` 是指向要写入数据的内存块的指针,`size` 是每个数据项的大小,`count` 是要写入的数据项数目。
5. `fgetc`:读取一个字符```int fgetc(FILE* stream);```该函数从文件中读取一个字符,成功读取返回字符对应的整数值,读取失败或到达文件末尾返回`EOF`。
6. `fputc`:写入一个字符```int fputc(int c, FILE* stream);```该函数将一个字符写入文件,成功写入返回写入的字符,写入失败返回`EOF`。
功能: 异常终止一个进程用法: void abort(void)函数名: abs功能: 求整数的绝对值用法: int abs(int i)函数名: absread, abswirte功能: 绝对磁盘扇区读、写数据用法: int absread(int drive, int nsects, int sectno, void *buffer) int abswrite(int drive, int nsects, in tsectno, void *buffer函数名: access功能: 确定文件的访问权限用法: int access(const char *filename, int amode)函数名: acos功能:反余弦函数用法: double acos(double x)函数名: allocmem功能: 分配DOS存储段用法:int allocmem(unsigned size, unsigned *seg)函数名: arc功能: 画一弧线用法:void far arc(int x, int y, int stangle, int endangle, int radius)函数名: asctime功能: 转换日期和时间为ASCII码用法:char *asctime(const struct tm *tblock)函数名: asin功能:反正弦函数用法: double asin(double x)函数名: assert功能: 测试一个条件并可能使程序终止用法:void assert(int test)函数名: atan功能: 反正切函数用法: double atan(double x)功能: 计算Y/X的反正切值用法: double atan2(double y, double x)函数名:atexit功能: 注册终止函数用法: int atexit(atexit_t func)函数名: atof功能: 把字符串转换成浮点数用法:double atof(const char *nptr)函数名: atoi功能: 把字符串转换成长整型数用法: int atoi(const char *nptr)函数名: atol功能: 把字符串转换成长整型数用法: long atol(const char *nptr)函数名: bar功能: 画一个二维条形图用法: void far bar(int left, int top, int right, int bottom)函数名: bar3d功能: 画一个三维条形图用法:void far bar3d(int left, int top, int right, int bottom,int depth, int topflag)函数名: bdos功能: DOS系统调用用法: int bdos(int dosfun, unsigned dosdx, unsigned dosal)函数名:bdosptr功能:DOS系统调用用法: int bdosptr(int dosfun, void *argument, unsigned dosal)函数名:bioscom功能: 串行I/O通信用法:int bioscom(int cmd, char abyte, int port)函数名:biosdisk功能: 软硬盘I/O用法:int biosdisk(int cmd, int drive, int head, int track, int sectorint nsects, void *buffer)函数名:biosequip功能: 检查设备用法:int biosequip(void)函数名:bioskey功能: 直接使用BIOS服务的键盘接口用法:int bioskey(int cmd)函数名:biosmemory功能: 返回存储块大小用法:int biosmemory(void)函数名:biosprint功能: 直接使用BIOS服务的打印机I/O用法:int biosprint(int cmd, int byte, int port)函数名:biostime功能: 读取或设置BIOS时间用法: long biostime(int cmd, long newtime)函数名: brk功能: 改变数据段空间分配用法:int brk(void *endds)函数名:bsearch功能: 二分法搜索用法:void *bsearch(const void *key, const void *base, size_t *nelem, size_t width, int(*fcmp)(const void *, const *))函数名: cabs功能: 计算复数的绝对值用法: double cabs(struct complex z);函数名:calloc功能:分配主存储器用法:void *calloc(size_t nelem, size_t elsize);函数名: ceil功能: 向上舍入用法: double ceil(double x);函数名: cgets功能: 从控制台读字符串用法: char *cgets(char *str)函数名:chdir功能: 改变工作目录用法: int chdir(const char *path);函数名:_chmod, chmod功能: 改变文件的访问方式用法: int chmod(const char *filename, int permiss);函数名:chsize功能: 改变文件大小用法: int chsize(int handle, long size);函数名: circle功能: 在给定半径以(x, y)为圆心画圆用法: void far circle(int x, int y, int radius);函数名: cleardevice功能: 清除图形屏幕用法: void far cleardevice(void);函数名:clearerr功能: 复位错误标志用法:void clearerr(FILE *stream);函数名: clearviewport功能: 清除图形视区用法: void far clearviewport(void);函数名:_close, close功能: 关闭文件句柄用法:int close(int handle);函数名: clock功能:确定处理器时间用法: clock_t clock(void);函数名:closegraph功能: 关闭图形系统用法: void far closegraph(void);函数名:clreol功能: 在文本窗口中清除字符到行末用法:void clreol(void)函数名:clrscr功能: 清除文本模式窗口用法:void clrscr(void);函数名: coreleft功能: 返回未使用内存的大小用法:unsigned coreleft(void);函数名: cos功能: 余弦函数用法:double cos(double x);函数名:cosh功能: 双曲余弦函数用法: dluble cosh(double x);函数名: country功能: 返回与国家有关的信息用法: struct COUNTRY *country(int countrycode, struct country *country); 函数名: cprintf功能: 送格式化输出至屏幕用法:int cprintf(const char *format[, argument, ...]);函数名: cputs功能: 写字符到屏幕用法: void cputs(const char *string);函数名: _creat creat功能: 创建一个新文件或重写一个已存在的文件用法: int creat (const char *filename, int permiss)函数名:creatnew功能: 创建一个新文件用法:int creatnew(const char *filename, int attrib);函数名: cscanf功能: 从控制台执行格式化输入用法:int cscanf(char *format[,argument, ...]);函数名: ctime功能: 把日期和时间转换为字符串用法:char *ctime(const time_t *time);功能: 设置Ctrl-Break处理程序用法: void ctrlbrk(*fptr)(void);函数名: delay功能: 将程序的执行暂停一段时间(毫秒)用法: void delay(unsigned milliseconds);函数名: delline功能: 在文本窗口中删去一行用法: void delline(void);函数名:detectgraph功能: 通过检测硬件确定图形驱动程序和模式用法: void far detectgraph(int far *graphdriver, int far *graphmode); 函数名: difftime功能: 计算两个时刻之间的时间差用法: double difftime(time_t time2, time_t time1);函数名: disable功能: 屏蔽中断用法:void disable(void);函数名: div功能: 将两个整数相除, 返回商和余数用法:div_t (int number, int denom);函数名: dosexterr功能: 获取扩展DOS错误信息用法:int dosexterr(struct DOSERR *dblkp);函数名: dostounix功能: 转换日期和时间为UNIX时间格式用法: long dostounix(struct date *dateptr, struct time *timeptr);函数名: drawpoly功能: 画多边形用法: void far drawpoly(int numpoints, int far *polypoints);函数名:dup功能: 复制一个文件句柄用法: int dup(int handle);函数名:dup2功能: 复制文件句柄用法: int dup2(int oldhandle, int newhandle);功能: 把一个浮点数转换为字符串用法: char ecvt(double value, int ndigit, int *decpt, int *sign);函数名: ellipse功能: 画一椭圆用法:void far ellipse(int x, int y, int stangle, int endangle,int xradius, int yradius);函数名: enable功能: 开放硬件中断用法: void enable(void);函数名: eof功能: 检测文件结束用法: int eof(int *handle);函数名: exec...功能: 装入并运行其它程序的函数用法: int execl(char *pathname, char *arg0, arg1, ..., argn, NULL); int execle(char *pathname, char *arg0, arg1, ..., argn, NULL,char *envp[]);int execlp(char *pathname, char *arg0, arg1, .., NULL);int execple(char *pathname, char *arg0, arg1, ..., NULL,char *envp[]);int execv(char *pathname, char *argv[]);int execve(char *pathname, char *argv[], char *envp[]);int execvp(char *pathname, char *argv[]);int execvpe(char *pathname, char *argv[], char *envp[]);函数名:exit功能: 终止程序用法: void exit(int status);函数名: exp功能: 指数函数用法: double exp(double x);函数名: gcvt功能: 把浮点数转换成字符串用法: char *gcvt(double value, int ndigit, char *buf);函数名: geninterrupt功能: 产生一个软中断函数名: getarccoords功能: 取得最后一次调用arc的坐标用法: void far getarccoords(struct arccoordstype far *arccoords); 函数名: getaspectratio功能: 返回当前图形模式的纵横比用法: void far getaspectratio(int far *xasp, int far *yasp);函数名: getbkcolor功能: 返回当前背景颜色用法: int far getbkcolor(void);函数名: getc功能: 从流中取字符用法: int getc(FILE *stream);函数名: getcbrk功能: 获取Control_break设置用法: int getcbrk(void);函数名: getch功能: 从控制台无回显地取一个字符用法: int getch(void);函数名: getchar功能: 从stdin流中读字符用法: int getchar(void);函数名: getche功能: 从控制台取字符(带回显)用法: int getche(void);函数名: getcolor功能: 返回当前画线颜色用法: int far getcolor(void);函数名: getcurdir功能: 取指定驱动器的当前目录用法: int getcurdir(int drive, char *direc);函数名: getcwd功能: 取当前工作目录用法: char *getcwd(char *buf, int n);函数名: getdate功能: 取DOS日期函数名: getdefaultpalette功能: 返回调色板定义结构用法: struct palettetype *far getdefaultpalette(void);函数名: getdisk功能: 取当前磁盘驱动器号用法: int getdisk(void);函数名: getdrivername功能: 返回指向包含当前图形驱动程序名字的字符串指针用法: char *getdrivename(void);函数名: getdta功能: 取磁盘传输地址用法: char far *getdta(void);函数名: getenv功能: 从环境中取字符串用法: char *getenv(char *envvar);函数名: getfat, getfatd功能: 取文件分配表信息用法: void getfat(int drive, struct fatinfo *fatblkp);函数名: getfillpattern功能: 将用户定义的填充模式拷贝到内存中用法: void far getfillpattern(char far *upattern);函数名: getfillsettings功能: 取得有关当前填充模式和填充颜色的信息用法: void far getfillsettings(struct fillsettingstype far *fillinfo); 函数名: getftime功能: 取文件日期和时间用法: int getftime(int handle, struct ftime *ftimep);函数名: getgraphmode功能: 返回当前图形模式用法: int far getgraphmode(void);函数名: getftime功能: 取文件日期和时间用法: int getftime(int handle, struct ftime *ftimep);函数名: getgraphmode功能: 返回当前图形模式用法: int far getgraphmode(void);函数名: getimage功能: 将指定区域的一个位图存到主存中用法: void far getimage(int left, int top, int right, int bottom,void far *bitmap);函数名: getlinesettings功能: 取当前线型、模式和宽度用法: void far getlinesettings(struct linesettingstype far *lininfo): 函数名: getmaxx功能: 返回屏幕的最大x坐标用法: int far getmaxx(void);函数名: getmaxy功能: 返回屏幕的最大y坐标用法: int far getmaxy(void);函数名: getmodename功能: 返回含有指定图形模式名的字符串指针用法: char *far getmodename(int mode_name);函数名: getmoderange功能: 取给定图形驱动程序的模式范围用法: void far getmoderange(int graphdriver, int far *lomode,int far *himode);函数名: getpalette功能: 返回有关当前调色板的信息用法: void far getpalette(struct palettetype far *palette);函数名: getpass功能: 读一个口令用法: char *getpass(char *prompt);函数名: getpixel功能: 取得指定像素的颜色用法: int far getpixel(int x, int y);函数名: gets功能: 从流中取一字符串用法: char *gets(char *string);函数名: gettext功能: 将文本方式屏幕上的文本拷贝到存储区用法: int gettext(int left, int top, int right, int bottom, void *destin);函数名: gettextinfo功能: 取得文本模式的显示信息用法: void gettextinfo(struct text_info *inforec);函数名: gettextsettings功能: 返回有关当前图形文本字体的信息用法: void far gettextsettings(struct textsettingstype far *textinfo); 函数名: gettime功能: 取得系统时间用法: void gettime(struct time *timep);函数名: getvect功能: 取得中断向量入口用法: void interrupt(*getvect(int intr_num));函数名: getverify功能: 返回DOS校验标志状态用法: int getverify(void);函数名: getviewsetting功能: 返回有关当前视区的信息用法: void far getviewsettings(struct viewporttype far *viewport); 函数名: getw功能: 从流中取一整数用法: int getw(FILE *strem);函数名: getx功能: 返回当前图形位置的x坐标用法: int far getx(void);函数名: gety功能: 返回当前图形位置的y坐标用法: int far gety(void);函数名: gmtime功能: 把日期和时间转换为格林尼治标准时间(GMT)用法: struct tm *gmtime(long *clock);函数名: gotoxy功能: 在文本窗口中设置光标用法: void gotoxy(int x, int y);函数名: gotoxy功能: 在文本窗口中设置光标用法: void gotoxy(int x, int y);函数名: graphdefaults功能: 将所有图形设置复位为它们的缺省值用法: void far graphdefaults(void);函数名: grapherrormsg功能: 返回一个错误信息串的指针用法: char *far grapherrormsg(int errorcode);函数名: graphresult功能: 返回最后一次不成功的图形操作的错误代码用法: int far graphresult(void);函数名: _graphfreemem功能: 用户可修改的图形存储区释放函数用法: void far _graphfreemem(void far *ptr, unsigned size);函数名: _graphgetmem功能: 用户可修改的图形存储区分配函数用法: void far *far _graphgetmem(unsigned size);函数名: harderr功能: 建立一个硬件错误处理程序用法: void harderr(int (*fptr)());函数名: hardresume功能: 硬件错误处理函数用法: void hardresume(int rescode);函数名: highvideo功能: 选择高亮度文本字符用法: void highvideo(void);函数名: hypot功能: 计算直角三角形的斜边长用法: double hypot(double x, double y);函数名: imagesize功能: 返回保存位图像所需的字节数用法: unsigned far imagesize(int left, int top, int right, int bottom); 函数名: initgraph功能: 初始化图形系统用法: void far initgraph(int far *graphdriver, int far *graphmode函数名: inport功能: 从硬件端口中输入用法: int inp(int protid);函数名: insline功能: 在文本窗口中插入一个空行用法: void insline(void);函数名: installuserdriver功能: 安装设备驱动程序到BGI设备驱动程序表中用法: int far installuserdriver(char far *name, int (*detect)(void));函数名: installuserfont功能: 安装未嵌入BGI系统的字体文件(CHR)用法: int far installuserfont(char far *name);函数名: int86功能: 通用8086软中断接口用法: int int86(int intr_num, union REGS *inregs, union REGS *outregs) 函数名: int86x功能: 通用8086软中断接口用法: int int86x(int intr_num, union REGS *insegs, union REGS *outregs, 函数名: intdos功能: 通用DOS接口用法: int intdos(union REGS *inregs, union REGS *outregs);函数名: intdosx功能: 通用DOS中断接口用法: int intdosx(union REGS *inregs, union REGS *outregs,struct SREGS *segregs);函数名: intr功能: 改变软中断接口用法: void intr(int intr_num, struct REGPACK *preg);函数名: ioctl功能: 控制I/O设备用法: int ioctl(int handle, int cmd[,int *argdx, int argcx]);函数名: isatty功能: 检查设备类型用法: int isatty(int handle);函数名: itoa功能: 把一整数转换为字符串用法: char *itoa(int value, char *string, int radix);函数名: kbhit功能: 检查当前按下的键用法: int kbhit(void);函数名: keep功能: 退出并继续驻留用法: void keep(int status, int size);函数名: kbhit功能: 检查当前按下的键用法: int kbhit(void);函数名: keep功能: 退出并继续驻留用法: void keep(int status, int size);函数名: labs用法: long labs(long n);函数名: ldexp功能: 计算value*2的幂用法: double ldexp(double value, int exp);函数名: ldiv功能: 两个长整型数相除, 返回商和余数用法: ldiv_t ldiv(long lnumer, long ldenom);函数名: lfind功能: 执行线性搜索用法: void *lfind(void *key, void *base, int *nelem, int width,int (*fcmp)());函数名: line功能: 在指定两点间画一直线用法: void far line(int x0, int y0, int x1, int y1);函数名: linerel功能: 从当前位置点(CP)到与CP有一给定相对距离的点画一直线用法: void far linerel(int dx, int dy);函数名: localtime功能: 把日期和时间转变为结构用法: struct tm *localtime(long *clock);函数名: lock功能: 设置文件共享锁用法: int lock(int handle, long offset, long length);函数名: log功能: 对数函数ln(x)用法: double log(double x);函数名: log10功能: 对数函数log用法: double log10(double x);函数名: longjump功能: 执行非局部转移用法: void longjump(jmp_buf env, int val);函数名: lowvideo功能: 选择低亮度字符用法: void lowvideo(void);函数名: lrotl, _lrotl功能: 将无符号长整型数向左循环移位用法: unsigned long lrotl(unsigned long lvalue, int count);unsigned long _lrotl(unsigned long lvalue, int count);函数名: lsearch功能: 线性搜索用法: void *lsearch(const void *key, void *base, size_t *nelem,size_t width, int (*fcmp)(const void *, const void *));函数名: lseek功能: 移动文件读/写指针用法: long lseek(int handle, long offset, int fromwhere);main()主函数每一C 程序都必须有一main() 函数, 可以根据自己的爱好把它放在程序的某个地方。
C语言读写文件操作C语言中提供了丰富的文件读写操作函数,可以用来打开、创建、读取、写入、关闭文件。
下面将介绍这些函数的使用方法。
1.打开文件在C语言中,我们可以使用`fopen`函数来打开一个文件。
该函数的原型如下:```cFILE *fopen(const char *filename, const char *mode);```其中,`filename`是要打开的文件名,`mode`是打开文件的模式。
常见的文件打开模式有以下几种:-`"r"`:只读模式,打开文件用于读取数据。
-`"w"`:写入模式,若文件存在,则清空文件内容;若文件不存在,则创建文件。
-`"a"`:追加模式,若文件存在,则在文件末尾追加内容;若文件不存在,则创建文件。
-`"r+"`:读写模式,打开一个已存在的文件,可以读取、写入文件内容。
-`"w+"`:读写模式,若文件存在,则清空文件内容;若文件不存在,则创建文件。
-`"a+"`:读写模式,若文件存在,则在文件末尾追加内容;若文件不存在,则创建文件。
打开文件成功后,`fopen`函数返回一个类型为`FILE*`的指针,用于后续的文件读写操作。
示例代码:```cFILE *fp = fopen("file.txt", "r");if (fp == NULL)printf("打开文件失败\n");return -1;```2.关闭文件在文件读写操作完成后,我们需要使用`fclose`函数来关闭文件,释放资源。
该函数的原型如下:```cint fclose(FILE *stream);```其中,`stream`是要关闭的文件指针。
示例代码:```cint result = fclose(fp);if (result == 0)printf("关闭文件成功\n");} elseprintf("关闭文件失败\n");```3.读取文件内容C语言中提供了多个函数用于从文件中读取数据,常用的函数有:- `fgetc`:从文件中读取一个字符。
C语⾔的f(open)函数(⽂件操作读写)头⽂件:#include <stdio.h>fopen()是⼀个常⽤的函数,⽤来以指定的⽅式打开⽂件,其原型为:FILE * fopen(const char * path, const char * mode);【参数】path为包含了路径的⽂件名,mode为⽂件打开⽅式。
mode有以下⼏种⽅式:打开⽅说明式r以只读⽅式打开⽂件,该⽂件必须存在。
r+以读/写⽅式打开⽂件,该⽂件必须存在。
rb+以读/写⽅式打开⼀个⼆进制⽂件,只允许读/写数据。
rt+以读/写⽅式打开⼀个⽂本⽂件,允许读和写。
w打开只写⽂件,若⽂件存在则长度清为0,即该⽂件内容消失,若不存在则创建该⽂件。
w+打开可读/写⽂件,若⽂件存在则⽂件长度清为零,即该⽂件内容会消失。
若⽂件不存在则建⽴该⽂件。
a以附加的⽅式打开只写⽂件。
若⽂件不存在,则会建⽴该⽂件,如果⽂件存在,写⼊的数据会被加到⽂件尾,即⽂件原先的内容会被保留(EOF符保留)。
a+以附加⽅式打开可读/写的⽂件。
若⽂件不存在,则会建⽴该⽂件,如果⽂件存在,则写⼊的数据会被加到⽂件尾后,即⽂件原先的内容会被保留(原来的EOF符不保留)。
wb以只写⽅式打开或新建⼀个⼆进制⽂件,只允许写数据。
wb+以读/写⽅式打开或建⽴⼀个⼆进制⽂件,允许读和写。
wt+以读/写⽅式打开或建⽴⼀个⽂本⽂件,允许读写。
at+以读/写⽅式打开⼀个⽂本⽂件,允许读或在⽂本末追加数据。
ab+以读/写⽅式打开⼀个⼆进制⽂件,允许读或在⽂件末追加数据。
在POSIX 系统,包含Linux 下都会忽略 b 字符。
由fopen()所建⽴的新⽂件会具有S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH(0666)权限,此⽂件权限也会参考umask 值。
⼆进制和⽂本模式的区别:在windows系统中,⽂本模式下,⽂件以"\r\n"代表换⾏。
c语言常见函数C语言是一种广泛应用于软件开发领域的编程语言,它具有简单、高效、灵活等优势。
在C语言中,函数是实现代码模块化的重要方式之一。
本文将介绍一些常见的C语言函数,包括输入输出函数、数学函数、字符串函数和数组函数。
一、输入输出函数1. printf函数printf函数用于将字符串或其他数据输出到屏幕。
它的基本语法是:```cprintf("格式控制字符串", 参数列表);```其中,格式控制字符串指定了输出内容的格式,参数列表则是要输出的数据。
示例如下:```cint num = 10;printf("数字:%d", num);```2. scanf函数scanf函数用于从键盘读取输入。
它的基本语法是:scanf("格式控制字符串", 参数列表);```其中,格式控制字符串指定了输入内容的格式,参数列表是接收输入的变量。
示例如下:```cint num;scanf("%d", &num);```二、数学函数1. abs函数abs函数返回一个整数的绝对值。
它的基本语法是:```cint abs(int x);```示例如下:```cint num = -5;int absNum = abs(num);2. pow函数pow函数用于计算一个数的指数幂。
它的基本语法是:```cdouble pow(double x, double y);```其中,x为底数,y为指数。
示例如下:```cdouble result = pow(2, 3);```三、字符串函数1. strlen函数strlen函数返回一个字符串的长度。
它的基本语法是:```csize_t strlen(const char *s);```其中,s是要计算长度的字符串。
示例如下:```cchar str[] = "Hello World";size_t length = strlen(str);```2. strcpy函数strcpy函数将一个字符串复制到另一个字符串中。
C语言文件操作函数大全C语言提供了丰富的文件操作函数,可以实现对文件的读取、写入、关闭等操作。
下面是一些常用的文件操作函数的介绍:1. fopen(函数:用于打开一个文件,并返回一个指向该文件的文件指针。
函数原型为:FILE *fopen(const char *filename, const char*mode)。
filename为要打开的文件名,mode为打开方式,包括读取("r")、写入("w")、追加("a")等。
2. fclose(函数:用于关闭一个文件,释放文件指针所占用的资源。
函数原型为:int fclose(FILE *stream)。
stream为指向要关闭文件的指针。
3. fread(函数:用于从文件中读取数据,并将读取得到的数据存储在指定的内存区域中。
函数原型为:size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream)。
ptr为存储读取数据的内存区域的指针,size为每个数据项的大小,nmemb为要读取的数据项的个数,stream为要读取数据的文件指针。
4. fwrite(函数:用于将数据写入到文件中。
函数原型为:size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream)。
ptr为要写入的数据的内存区域的指针,size为每个数据项的大小,nmemb为要写入的数据项的个数,stream为要写入数据的文件指针。
5. fprintf(函数:用于向文件中写入格式化的数据。
函数原型为:int fprintf(FILE *stream, const char *format, ...)。
stream为要写入数据的文件指针,format为格式化字符串,后面可以跟上需要写入的数据。
C语⾔⽂件操作函数⼤全(超详细)相关函数 open,fclose表头⽂件 #include<stdio.h>定义函数 FILE * fopen(const char * path,const char * mode);函数说明参数path字符串包含欲打开的⽂件路径及⽂件名,参数mode字符串则代表着流形态。
r 打开只读⽂件,该⽂件必须存在。
r+ 打开可读写的⽂件,该⽂件必须存在。
w 打开只写⽂件,若⽂件存在则⽂件长度清为0,即该⽂件内容会消失。
若⽂件不存在则建⽴该⽂件。
w+ 打开可读写⽂件,若⽂件存在则⽂件长度清为零,即该⽂件内容会消失。
若⽂件不存在则建⽴该⽂件。
a 以附加的⽅式打开只写⽂件。
若⽂件不存在,则会建⽴该⽂件,如果⽂件存在,写⼊的数据会被加到⽂件尾,即⽂件原先的内容会被保留。
a+ 以附加⽅式打开可读写的⽂件。
若⽂件不存在,则会建⽴该⽂件,如果⽂件存在,写⼊的数据会被加到⽂件尾后,即⽂件原先的内容会被保留。
复制代码代码如下:r Open text file for reading. The stream is positioned at the beginning of the file.r+ Open for reading and writing. The stream is positioned at the beginning of the file.w Truncate file to zero length or create text file for writing. The stream is positioned at the beginning of the file.w+ Open for reading and writing. The file is created if it does not exist, otherwise it is truncated. The stream is posi‐tioned at the beginning of the file.a Open for appending (writing at end of file). The file is created if it does not exist. The stream is positioned at theend of the file.a+ Open for reading and appending (writing at end of file). The file is created if it does not exist. The initial file posi‐tion for reading is at the beginning of the file, but output is always appended to the end of the file.上述的形态字符串都可以再加⼀个b字符,如rb、w+b或ab+等组合,加⼊b 字符⽤来告诉函数库打开的⽂件为⼆进制⽂件,⽽⾮纯⽂字⽂件。
在C语言中,stream通常是指文件流(file stream),用于处理文件的输入输出操作。
C语言中的文件流可以通过标准库中的文件操作函数进行使用。
以下是一些常用的文件流操作函数:1. fopen()函数:用于打开一个文件,并返回一个指向该文件的指针。
语法为:FILE *fopen(const char *filename, const char *mode);2. fclose()函数:用于关闭一个打开的文件。
语法为:int fclose(FILE *stream);3. fgetc()函数:用于从文件中读取一个字符。
语法为:int fgetc(FILE *stream);4. fgets()函数:用于从文件中读取一行数据。
语法为:char *fgets(char *str, int n, FILE *stream);5. fputc()函数:用于将一个字符写入文件中。
语法为:int fputc(int c, FILE *stream);6. fputs()函数:用于将一行数据写入文件中。
语法为:int fputs(const char *str, FILE *stream);7. fread()函数:用于从文件中读取指定数量的数据块。
语法为:size_t fread(void *ptr, size_t size, size_t count, FILE *stream);8. fwrite()函数:用于将指定数量的数据块写入文件中。
语法为:size_t fwrite(const void *ptr, size_t size, size_t count, FILE *stream);在使用文件流时,需要注意以下几点:1. 打开文件时需要指定正确的文件路径和打开模式(例如:r表示只读,w表示写入,a表示追加等)。
2. 在使用文件流时,需要确保文件已经被正确关闭,以避免资源泄漏和文件损坏的问题。
3. 在读取或写入文件时,需要注意数据类型的大小和顺序等问题,以避免出现读写错误或数据损坏的情况。
c语言操作函数
C语言中的操作函数包括各种数据类型的处理函数、字符串处理函数、文件操作函数等,它们是C语言编程中不可或缺的一部分。
其中,数据类型的处理函数包括数值类型的处理函数和字符类型的处理函数,如int、float、double、char等类型的处理函数,包括转换、比较、运算等功能;字符串处理函数包括字符串常量处理函数和字符串变量处理函数,如strlen、strcpy、strcat等函数,用于字符串的复制、拼接、查找等功能;文件操作函数包括文件的打开、关闭、读写、复制等操作,如fopen、fclose、fread、fwrite等函数,用于文件的读写和管理等功能。
通过熟练掌握这些操作函数,可以大大提高C语言编程的效率和代码的可读性。
- 1 -。
C语⾔常⽤函数⼤全⼀、数学函数调⽤数学函数时,要求在源⽂件中包下以下命令⾏:#include <math.h>函数原型说明功能返回值说明int abs( int x)求整数x的绝对值计算结果double fabs(double x)求双精度实数x的绝对值计算结果double acos(double x)计算cos-1(x)的值计算结果x在-1~1范围内double asin(double x)计算sin-1(x)的值计算结果x在-1~1范围内double atan(double x)计算tan-1(x)的值计算结果double atan2(double x)计算tan-1(x/y)的值计算结果double cos(double x)计算cos(x)的值计算结果x的单位为弧度double cosh(double x)计算双曲余弦cosh(x)的值计算结果double exp(double x)求e x的值计算结果double fabs(double x)求双精度实数x的绝对值计算结果double floor(double x)求不⼤于双精度实数x的最⼤整数double fmod(double x,double y)求x/y整除后的双精度余数double frexp(double val,int *exp)把双精度val分解尾数和以2为底的指数n,即val=x*2n,n存放在exp所指的变量中返回位数x 0.5≤x<1double log(double x)求㏑x计算结果x>0 double log10(double x)求log10x计算结果x>0double modf(double val,double*ip)把双精度val分解成整数部分和⼩数部分,整数部分存放在ip所指的变量中返回⼩数部分double pow(double x,double y)计算x y的值计算结果double sin(double x)计算sin(x)的值计算结果x的单位为弧度double sinh(double x)计算x的双曲正弦函数sinh(x)的值计算结果double sqrt(double x)计算x的开⽅计算结果x≥0double tan(double x)计算tan(x)计算结果double tanh(double x)计算x的双曲正切函数tanh(x)的值计算结果⼆、字符函数调⽤字符函数时,要求在源⽂件中包下以下命令⾏:#include <ctype.h>函数原型说明功能返回值int isalnum(int ch)检查ch是否为字母或数字是,返回1;否则返回0int isalpha(int ch)检查ch是否为字母是,返回1;否则返回0int iscntrl(int ch)检查ch是否为控制字符是,返回1;否则返回0int isdigit(int ch)检查ch是否为数字是,返回1;否则返回0int isgraph(int ch)检查ch是否为ASCII码值在ox21到ox7e的可打印字符(即不包含空格字符)是,返回1;否则返回0int islower(int ch)检查ch是否为⼩写字母是,返回1;否则返回0int isprint(int ch)检查ch是否为包含空格符在内的可打印字符是,返回1;否则返回0int ispunct(int ch)检查ch是否为除了空格、字母、数字之外的可打印字符是,返回1;否则返回0int isspace(int ch)检查ch是否为空格、制表或换⾏符是,返回1;否则返回0int isupper(int ch)检查ch是否为⼤写字母是,返回1;否则返回0int isxdigit(int ch)检查ch是否为16进制数是,返回1;否则返回0int tolower(int ch)把ch中的字母转换成⼩写字母返回对应的⼩写字母int toupper(int ch)把ch中的字母转换成⼤写字母返回对应的⼤写字母三、字符串函数调⽤字符函数时,要求在源⽂件中包下以下命令⾏:#include <string.h>函数原型说明功能返回值char *strcat(char *s1,char *s2)把字符串s2接到s1后⾯s1所指地址char *strchr(char *s,int ch)在s所指字符串中,找出第⼀次出现字符ch的位置返回找到的字符的地址,找不到返回NULLint strcmp(char *s1,char *s2)对s1和s2所指字符串进⾏⽐较s1<s2,返回负数;s1= =s2,返回0;s1>s2,返回正数char *strcpy(char *s1,char *s2)把s2指向的串复制到s1指向的空间s1 所指地址unsigned strlen(char *s)求字符串s的长度返回串中字符(不计最后的'\0')个数char *strstr(char *s1,char *s2)在s1所指字符串中,找出字符串s2第⼀次出现的位置返回找到的字符串的地址,找不到返回NULL四、输⼊输出函数调⽤字符函数时,要求在源⽂件中包下以下命令⾏:#include <stdio.h>函数原型说明功能返回值void clearer(FILE *fp)清除与⽂件指针fp有关的所有出错信息⽆int fclose(FILE *fp)关闭fp所指的⽂件,释放⽂件缓冲区出错返回⾮0,否则返回0int feof (FILE *fp)检查⽂件是否结束遇⽂件结束返回⾮0,否则返回0int fgetc (FILE *fp)从fp所指的⽂件中取得下⼀个字符出错返回EOF,否则返回所读字符char *fgets(char *buf,int n, FILE *fp)从fp所指的⽂件中读取⼀个长度为n-1的字符串,将其存⼊buf所指存储区返回buf所指地址,若遇⽂件结束或出错返回NULLFILE *fopen(char *filename,char*mode)以mode指定的⽅式打开名为filename的⽂件成功,返回⽂件指针(⽂件信息区的起始地址),否则返回NULLint fprintf(FILE *fp, char *format, args,…)把args,…的值以format指定的格式输出到fp指定的⽂件中实际输出的字符数int fputc(char ch, FILE *fp)把ch中字符输出到fp指定的⽂件中成功返回该字符,否则返回EOFint fputs(char *str, FILE *fp)把str所指字符串输出到fp所指⽂件成功返回⾮负整数,否则返回-1(EOF)int fread(char *pt,unsigned size,unsigned n, FILE *fp)从fp所指⽂件中读取长度size为n个数据项存到pt所指⽂件读取的数据项个数int fscanf (FILE *fp, char *format,args,…)从fp所指的⽂件中按format指定的格式把输⼊数据存⼊到args,…所指的内存中已输⼊的数据个数,遇⽂件结束或出错返回0int fseek (FILE *fp,long offer,int base)移动fp所指⽂件的位置指针成功返回当前位置,否则返回⾮0long ftell (FILE *fp)求出fp所指⽂件当前的读写位置读写位置,出错返回 -1Lint fwrite(char *pt,unsignedsize,unsigned n, FILE *fp)把pt所指向的n*size个字节输⼊到fp所指⽂件输出的数据项个数int getc (FILE *fp)从fp所指⽂件中读取⼀个字符返回所读字符,若出错或⽂件结束返回EOF int getchar(void)从标准输⼊设备读取下⼀个字符返回所读字符,若出错或⽂件结束返回-1char *gets(char *s)从标准设备读取⼀⾏字符串放⼊s所指存储区,⽤’\0’替换读⼊的换⾏符返回s,出错返回NULLint printf(char *format,args,…)把args,…的值以format指定的格式输出到标准输出设备输出字符的个数int putc (int ch, FILE *fp)同fputc同fputcint putchar(char ch)把ch输出到标准输出设备返回输出的字符,若出错则返回EOFint puts(char *str)把str所指字符串输出到标准设备,将’\0’转成回车换⾏符返回换⾏符,若出错,返回EOFint rename(char *oldname,char*newname)把oldname所指⽂件名改为newname所指⽂件名成功返回0,出错返回-1void rewind(FILE *fp)将⽂件位置指针置于⽂件开头⽆int scanf(char *format,args,…)从标准输⼊设备按format指定的格式把输⼊数据存⼊到args,…所指的内存中已输⼊的数据的个数五、动态分配函数和随机函数调⽤字符函数时,要求在源⽂件中包下以下命令⾏:#include <stdlib.h>函数原型说明功能返回值void *calloc(unsigned n,unsignedsize)分配n个数据项的内存空间,每个数据项的⼤⼩为size个字节分配内存单元的起始地址;如不成功,返回0void *free(void *p)释放p所指的内存区⽆void *free(void *p)释放p所指的内存区⽆void *malloc(unsigned size)分配size个字节的存储空间分配内存空间的地址;如不成功,返回0 void *realloc(void *p,unsigned size)把p所指内存区的⼤⼩改为size个字节新分配内存空间的地址;如不成功,返回0int rand(void)产⽣0~32767的随机整数返回⼀个随机整数void exit(int state)程序终⽌执⾏,返回调⽤过程,state为0正常终⽌,⾮0⾮正⽆常终⽌。
c语言文件操作函数总结格式化十六进制大写C语言文件操作函数总结- 格式化十六进制大写在C语言中,文件操作函数提供了一种对文件进行输入和输出操作的方式。
这些函数使得我们能够读取文件的内容、写入数据到文件中、创建新文件以及对现有文件进行修改等操作。
其中,格式化十六进制大写是常见的需求之一。
本文将以C语言文件操作函数为主线,详细讲解如何在文件操作过程中进行格式化十六进制大写的处理。
我们将一步一步回答这个问题,以帮助读者理解和运用这些函数。
1. 打开文件在开始对文件进行操作之前,首先需要打开文件。
C语言提供了`fopen()`函数来打开文件。
函数原型如下:cFILE* fopen(const char *filename, const char *mode);其中,`filename`参数表示文件的路径和名称,`mode`参数表示文件的打开模式。
对于以读取方式打开文件,可以使用"r"模式;对于以写入方式打开文件,可以使用"w"模式。
示例代码如下:cinclude <stdio.h>int main() {FILE* file = fopen("example.txt", "r");if (file == NULL) {printf("无法打开文件!\n");return 1;}其他操作...fclose(file);return 0;}以上代码中,我们尝试打开一个名为"example.txt"的文本文件。
如果文件不存在或者无法打开,将输出"无法打开文件!",退出程序。
2. 读取文件内容打开文件后,我们可以使用C语言提供的文件读取函数来读取文件的内容。
其中,常见的函数包括`fgetc()`和`fgets()`。
`fgetc()`函数用于读取一个字符。
函数原型如下:cint fgetc(FILE *stream);示例代码如下:cinclude <stdio.h>int main() {FILE* file = fopen("example.txt", "r");if (file == NULL) {printf("无法打开文件!\n");return 1;}int character;while ((character = fgetc(file)) != EOF) {处理读取的字符}fclose(file);return 0;}在以上代码中,我们使用`while`循环和`fgetc()`函数来读取文件中的字符,直到遇到文件结束符(EOF)为止。
C语言文件操作函数13.1C语言文件1,两种文件存取方式(输入,输出方式)顺序存取直接存取2,数据的两种存放形式文本文件二进制文件13.2文件指针定义文件类型指针变量的一般形式:FILE *指针变量名;例如:FILE *fp1,*fp2;13.3打开文件在使用文件之前,需打开文件.在C里使用fopen函数打开文件.格式为:fopen(文件名,文件使用方式);此函数返回一个指向FILE类型的指针.如:FILE *fp;fp=fopen("file_1","r");如果调用成功,fp就指向file_1,否则返回为NULL,所以为了保证文件的正确使用,要进行测试.采用如下语句:If((fp=fopen("file_1","r"))==NULL){printf("Cannot open this file\n");exit(0);}最常用的文件使用方式及其含义如下:1,"r".为读而打开文本文件.(不存在则出错) 2,"rb".为读而打开二进制文件.3,"w".为写而打开文本文件.(若不存在则新建,反之,则从文件起始位置写,原内容将被覆盖) 4,"wb".为写而打开二进制文件.5,"a".为在文件后面添加数据而打开文本文件.(若不存在,则新建;反之,在原文件后追加)6,"ab".为在文件后面添加数据而打开一个二进制文件.最常用的文件使用方式及其含义如下:7,"r+".为读和写而打开文本文件.(读时,从头开始;在写数据时,新数据只覆盖所占的空间,其后不变) 8,"rb+".为读和写而打开二进制文件.只是在随后的读写时,可以由位置函数设置读和写的起始位置. 9,"w+".首先建立一个新文件,进行写操作,随后可以从头开始读.(若文件存在,原内容将全部消失) 10,"wb+".功能与"w+"同.只是在随后的读写时,可以由位置函数设置读和写的起始位置.最常用的文件使用方式及其含义如下:11,"a+".功能与"a"相同;只是在文件尾部添加新的数据后,可以从头开始读.12,"ab+".功能与"a+"相同;只是在文件尾部添加新数据之后,可以由位置函数设置开始读的起始位置. 13.4关闭文件当文件的读写操作完成之后,使用fclose函数关闭文件.格式如下:fclose(文件指针)如:fclose(fp);13.5调用fgetc和fputc函数进行输入和输出1,调用fputc函数输出一个字符功能是:将字符ch写到文件指针fp所指的文件中去.当输出成功,putc函数返回所输出的字符;否则,返回一个EOF值.EOF是在stdio.h库函数文件中定义的符号常量,其值等于-1.13.5调用fgetc和fputc函数进行输入和输出例如:把从键盘输入的文本按原样输出到名为file_1.dat文件中,用字符@作为键盘输入结束标志. #includeVoid main(){FILE *fpout;char ch;if(fpout=fpopen("file_1","w")==NULL){printf("Cannot open this file!\n");exit(0);}ch=getchar();while(ch!='@'){ fputc(ch,fpout); ch=getchar(); }fclose(fpout);}2.调用fgetc函数输入一个字符功能是:从pf指定的文件中读如一个字符,并把它作为函数值返回.例如:把一个已存在磁盘上的file_1.dat文本文件中的内容,原样输出到终端屏幕上.#includevoid main(){FILE *fpin;char ch;if((fpin=fopen("file_1.dat","r"))==NULL){ printf("Cann't open this file!\n");exit(0);} ch=fgetc(fpin);while (ch!=EOF){ putchar(ch); ch=fgetc(fpin);}fclose(fpin);}13.6判断文件结束函数feofEOF可以作为文本文件的结束标志,但不能作为二进制文件的结束符.feof函数既可以判断二进制文件,又可以判断文本文件.例:编写程序,用于把一个文本文件(源)复制到另一个文件(目的)中,源文件名和目的文件名由命令行输入.命令形式如下:可执行程序名源文件名目的文件名#includevoid filecopy(FILE* ,FILE *);void main(int argc,char *argv[]){FILE *fpin,*fpout;if(argc==3){ fpin=fopen(argv[1],"r");fpout=fopen(argv[2],"w");filecopy(fpin,fpout);fclose(fpin);fclose(fpout);}else if(argc>3)printf("The file names too many!!\n";elseprintf("There are no file names for input or output!!\n );}void filecopy(FILE *fpin,FILE *fpout){char ch;ch=getc(fpin);while(!feof(fpin)){putc(ch,fpout); ch=getc(fpin);}}13.7fscanf函数和fprintf函数1,fscanf函数fscanf只能从文本文件中按格式输入,和scanf函数相似,只不过输入的对象是磁盘上文本文件中的数据.调用形式为:fscanf(文件指针,格式控制字符串,输入项表)例如:fscanf(fp,"%d%d",&a,&b);fscanf(stdin,"%d%d",&a,&b);等价于scanf("%d%d",&a,&b);3.fprintf函数fprintf函数按格式将内存中的数据转换成对应的字符,并以ASCII代码形式输出到文本文件中.Fprintf 函数和printf函数相似,只是将输出的内容按格式存放到磁盘的文本文件中.调用形式如下:fprintf(文件指针,格式控制字符串,输出项表)如:fprintf(fp,"%d %d",x,y);以下语句 fprintf(stdout,"%d %d",x,y)13.8fgets函数和fputs函数1,fgets函数fgets函数用来从文件中读入字符串.调用形式如下: fgets(str,n,fp);函数功能是:从fp所指文件中读入n-1个字符放入str 为起始地址的空间内;如果在未读满n-1个字符时,则遇到换行符或一个EOF结束本次读操作,并已str作为函数值返回. 13.8fgets函数和fputs函数2,fputs函数fput函数把字符串输出到文件中.函数调用形式如下: fputs(str,fp);注意:为了便于读入,在输出字符串时,应当人为的加诸如"\n"这样的字符串.#include <stdio.h>#include <iostream>int main(int argc, char *argv[]){char arr[10] ;char *ap = "hello!" ;FILE *fp ;if ((fp = fopen("hello.txt", "wt+")) == NULL) {printf("error!") ;exit(1) ;}fputs(ap, fp) ;rewind(fp) ; //fgets(arr, 10, fp) ;printf("%s\n", arr) ;fclose(fp) ;return 0 ;}13.9fread函数和fwrite函数例如有如下结构体:struct st{char num[8];float mk[5];}pers[30];以下循环将把这30个元素中的数据输出到fp所指文件中.for(i=0;i<30;i++)fwrite(&pers[i],sizeof(struct st),1,fp);13.9fread函数和fwrite函数以下语句从fp所指的文件中再次将每个学生数据逐个读入到pers数组中.i=0;fread(&pers[i],sizeof(struct st),1,fp);while(!feof(fp)){ i++;fread(&pers[i],sizeof(struct st),1,fp);}13.10文件定位函数1,fseek函数fseek函数用来移动文件位置指针到指定的位置上,接着的读或写操作将从此位置开始.函数的调用形式如下:fseek(pf,offset,origin)pf:文件指针offset:以字节为单位的位移量,为长整形.origin:是起始点,用来指定位移量是以哪个位置为基准的.1,fseek函数位移量的表示方法标识符数字代表的起始点SEEK_SET 0 文件开始SEEK_END 2 文件末尾SEEK_CUR 1 文件当前位置假设pf已指向一个二进制文件,则;fseek(pf,30L,SEEK_SET)fseek(pf,-10L*sizeof(int),SEEK_END)对于文本文件,位移量必须是0;如:fseek(pf,0L,SEEK_SET)fseek(pf,0L,SEEK_END)2. ftell函数ftell函数用以获得文件当前位置指针的位置,函数给出当前位置指针相对于文件开头的字节数.如;long t;t=ftell(pf);当函数调用出错时,函数返回-1L.我们可以通过以下方式来测试一个文件的长度: fseek(fp,0L,SEEK_END);t=ftell(fp);3.rewind函数调用形式为:rewind(pf);函数没有返回值.函数的功能是使文件的位置指针回到文件的开头.13.10文件应用在磁盘上的test.txt文件中放有10个不小于2的正整数,用函数调用方式编写程序.要求实现:1,在被调函数prime中,判断和统计10个整数中的素数以及个数.2,在主函数中将全部素数追加到磁盘文件test.txt的尾部,同时输出到屏幕上.#include#includeInt prime(int a[],int n){int I,j,k=0,flag=0;for(i=0;i { for(j=2;j if(a[i]%j==0){ flag=0; break;}else flag=1;if(flag){a[k]=a[i];k++;}}return k; }void main(){int n,I,a[10];FILE *fp;fp=fopen("test1-2.txt","r+");for(n=0;n<10;n++)fscanf(fp,"%d",&a[n]);n=prime(a,n);fseek(fp,o,2);for(i=0;i {printf("%3d",a[i]);fprintf(fp,"%3d",a[i]);}fclose(fp);}文件操作函数全clearerr(清除文件流的错误旗标)相关函数feof表头文件#include<stdio.h>定义函数void clearerr(FILE * stream);函数说明clearerr()清除参数stream指定的文件流所使用的错误旗标。