文件操作函数-3
C语言文件操作函数大全

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指定的文件流所使用的错误旗标。
visual studio 文件操作函数

visual studio 文件操作函数Visual Studio是一款功能强大的集成开发环境(Integrated Development Environment,简称IDE),广泛用于开发各种类型的应用程序。
在Visual Studio中,文件操作是开发过程中非常常见和重要的一部分。
本文将介绍一些常用的Visual Studio文件操作函数,帮助开发者更加高效地处理文件相关操作。
一、文件创建与打开1. `CreateFile`函数:用于创建或打开一个文件。
该函数可以指定文件名、访问权限、共享模式等参数,并返回一个表示文件句柄的值。
2. `fopen`函数:用于打开一个文件,并返回一个指向该文件的指针。
通过该指针,可以进行文件读写操作。
二、文件读写操作1. `ReadFile`函数:用于从文件中读取数据。
该函数可以指定文件句柄、读取的字节数、读取数据的缓冲区等参数,并返回读取的字节数和读取结果。
2. `WriteFile`函数:用于向文件中写入数据。
该函数可以指定文件句柄、要写入的数据、写入的字节数等参数,并返回写入的字节数和写入结果。
3. `fgets`函数:用于从文件中读取一行数据。
该函数可以指定要读取的字节数、读取数据的缓冲区和文件指针,并返回指向读取数据的指针。
三、文件定位与指针操作1. `fseek`函数:用于定位文件指针的位置。
该函数可以指定文件指针、偏移量和起始位置,并返回定位结果。
2. `ftell`函数:用于获取文件指针的当前位置。
该函数可以指定文件指针,并返回当前位置的偏移量。
3. `rewind`函数:用于将文件指针重新定位到文件的起始位置。
该函数可以指定文件指针,并无返回值。
四、文件关闭与删除1. `fclose`函数:用于关闭一个已打开的文件。
该函数可以指定要关闭的文件指针,并返回关闭结果。
2. `remove`函数:用于删除一个文件。
该函数可以指定要删除的文件名,并返回删除结果。
windows中操作文件和目录的函数

windows中操作⽂件和⽬录的函数1、⽂件操作函数CreateFile();//创建或打开⽂件ReadFile();//从⽂件读WriteFile();//向⽂件写SetFilePointer();//设置⽂件指针CopyFile();//复制⽂件MoveFile();//移动或重命名⽂件DeleteFile();//删除⽂件2、⽂件属性函数GetFileSize();//获取⽂件⼤⼩GetFileTime();//获取⽂件或⽬录的时间信息,如创建时间、最后修改时间、最后访问时间SetFileTime();//设置⽂件或⽬录的时间信息GetFileAttributesEx();//获取⽂件属性SetFileAttributes();//设置⽂件属性3、⽂件的遍历和查找FindFirstFile();//查找第⼀个⽂件FindNextFile();//查找下⼀个⽂件FindClose();//关闭查找4、⽬录操作函数CreateDirectory();//创建⽬录,只能创建⼀层⽬录RemoveDirectory();//删除⼀个空⽬录5、判断⽂件或⽬录是否存在C中函数access()可以⽤来判断⽂件或⽂件夹是否存在。
函数原型: int access(const char *filename, int mode);所属头⽂件:#include <io.h>filename:可以填写⽂件夹路径或者⽂件路径mode:0 (F_OK)只判断是否存在2 (R_OK)判断写⼊权限4 (W_OK)判断读取权限6 (X_OK)判断执⾏权限⽤于判断⽂件夹是否存在的时候,mode取0,判断⽂件是否存在的时候,mode可以取0、2、4、6。
若存在或者具有权限,返回值为0;不存在或者⽆权限,返回值为-1。
错误代码EACCESS 参数pathname 所指定的⽂件不符合所要求测试的权限。
EROFS 欲测试写⼊权限的⽂件存在于只读⽂件系统内。
c语言常用的安全函数

c语言常用的安全函数C语言常用的安全函数C语言是一种广泛应用于系统编程和嵌入式开发的高级编程语言。
而在进行C语言编程时,我们需要特别注意安全性,以避免程序出现潜在的漏洞和问题。
为了提高代码的安全性,C语言提供了许多常用的安全函数,用于处理字符串、内存分配、文件操作等。
本文将介绍C语言常用的安全函数,并对其使用方法和注意事项进行详细说明。
一、字符串处理函数1. strncpy:用于将指定长度的字符串复制到目标字符串中,避免溢出。
2. strncat:用于将指定长度的字符串连接到目标字符串的末尾,同样可以避免溢出。
3. snprintf:用于格式化输出字符串,并将结果存储到目标字符串中,可以避免缓冲区溢出。
4. strlcpy:用于将源字符串复制到目标字符串中,同时确保目标字符串以空字符结尾,避免缓冲区溢出。
5. strlcat:用于将源字符串连接到目标字符串的末尾,同时确保目标字符串以空字符结尾,同样可以避免缓冲区溢出。
在使用这些函数时,需要注意指定目标字符串的长度,以确保不会发生缓冲区溢出的情况。
二、内存分配函数1. calloc:用于在内存中分配指定数量的连续字节,并将其初始化为零。
这样可以避免使用未初始化的内存。
2. malloc:用于在内存中分配指定数量的连续字节,但不进行初始化。
在使用malloc分配内存时,需要注意在使用完毕后,及时使用free函数释放内存,避免内存泄漏问题。
3. realloc:用于重新分配之前分配的内存块的大小。
这个函数可以用于扩大或缩小内存块的大小。
同样需要注意在使用完毕后释放内存。
使用这些函数时,应该确保分配的内存足够,并且在使用完毕后及时释放内存,以避免内存泄漏和指针悬挂的问题。
三、文件操作函数1. fopen:用于打开一个文件,并返回一个文件指针。
在使用fopen函数打开文件时,应该确保文件存在,并且拥有足够的权限。
2. fclose:用于关闭一个已打开的文件。
PB中文件操作函数大全

PB中文件操作函数大全文件操作是计算机程序设计中的一项基本操作,用于对文件进行读取、写入、修改、删除等操作。
在PB(PowerBuilder)中,提供了一系列的文件操作函数,用于方便地对文件进行处理。
下面是PB中常用的文件操作函数的详细介绍,共计1200字以上。
1. FileOpen 函数:作用:用于打开一个文件,返回文件句柄。
语法:FileOpen ( integer filehandle, string filename,integer mode )参数解释:- filehandle:打开文件的文件句柄,为整数型。
- filename:文件名,为字符串类型。
- mode:打开文件的模式,为整数型,常用的模式有以下几种:-1:只读方式打开文件。
-2:写入方式打开文件。
-3:追加方式打开文件。
2. FileClose 函数:作用:关闭一个已打开的文件。
语法:FileClose ( integer filehandle )参数解释:- filehandle:要关闭的文件句柄,为整数型。
3. FileRead 函数:作用:从一个已打开的文件中读取内容。
语法:FileRead ( integer filehandle, refany content, integer length )参数解释:- filehandle:要读取内容的文件句柄,为整数型。
- content:用于存储读取内容的变量,为任意类型的引用。
- length:要读取的内容长度,为整数型。
4. FileWrite 函数:作用:向一个已打开的文件中写入内容。
语法:FileWrite ( integer filehandle, any content )参数解释:- filehandle:要写入内容的文件句柄,为整数型。
- content:要写入的内容,为任意类型。
5. FileDelete 函数:作用:删除指定的文件。
语法:FileDelete ( string filename )参数解释:- filename:要删除的文件名,为字符串类型。
c语言 文件操作函数

c语言文件操作函数C语言文件操作函数C语言文件操作函数是C语言提供的一种文件操作方式,可以通过这些函数来读取、写入和修改文件。
文件操作函数可以帮助我们完成很多与文件有关的任务,比如读取配置文件、保存用户数据等。
在本文中,将介绍C语言中常用的文件操作函数。
打开文件在C语言中,我们可以使用fopen()函数来打开一个文件。
该函数的原型如下:FILE *fopen(const char *filename, const char *mode);其中,filename表示要打开的文件名,mode表示打开文件的模式。
mode的取值如下:- "r":以只读方式打开文件- "w":以写方式打开文件,如果文件不存在,则创建该文件;如果文件已存在,则清空该文件- "a":以写方式打开文件,如果文件不存在,则创建该文件;如果文件已存在,则在文件末尾追加数据- "r+":以读写方式打开文件,文件必须存在- "w+":以读写方式打开文件,如果文件不存在,则创建该文件;如果文件已存在,则清空该文件- "a+":以读写方式打开文件,如果文件不存在,则创建该文件;如果文件已存在,则在文件末尾追加数据例如,我们可以使用以下代码来打开一个名为example.txt的文件:FILE *fp;fp = fopen("example.txt", "w+");if (fp == NULL) {printf("Open file failed!\n");}在打开文件之后,我们可以使用fclose()函数来关闭文件,释放文件资源。
例如:fclose(fp);读取文件在C语言中,我们可以使用fscanf()函数从文件中读取数据。
该函数的原型如下:int fscanf(FILE *stream, const char *format, ...);其中,stream表示要读取数据的文件,format表示数据的格式。
c语言常用函数大全及详解

c语言常用函数大全及详解C语言是一种通用的、面向过程的编程语言,被广泛应用于系统软件、嵌入式开发以及科学计算领域。
在C语言中,函数是一种模块化编程的基本方法,通过函数可以将一段代码进行封装和复用,提高了代码的可读性和可维护性。
本文将介绍一些C语言中常用的函数,并详细解释其用法及重要参数。
一、数学函数1. abs()函数函数原型:int abs(int x);函数功能:返回x的绝对值。
参数说明:x为一个整数。
2. pow()函数函数原型:double pow(double x, double y);函数功能:计算x的y次方。
参数说明:x和y为两个double类型的实数。
3. sqrt()函数函数原型:double sqrt(double x);函数功能:计算x的平方根。
参数说明:x为一个double类型的实数。
二、字符串函数1. strcpy()函数函数原型:char* strcpy(char* destination, const char* source);函数功能:将source字符串复制到destination字符串。
参数说明:destination为目标字符串,source为源字符串。
2. strlen()函数函数原型:size_t strlen(const char* str);函数功能:计算str字符串的长度。
参数说明:str为一个以'\0'结尾的字符串。
3. strcat()函数函数原型:char* strcat(char* destination, const char* source);函数功能:将source字符串拼接到destination字符串的末尾。
参数说明:destination为目标字符串,source为源字符串。
三、文件操作函数1. fopen()函数函数原型:FILE* fopen(const char* filename, const char* mode);函数功能:打开一个文件,并返回文件指针。
C++文件操作之三——BCB提供的文件操作的库函数

C++文件操作之三 : BCB提供的文件操作的库函数在BCB中也提供了文件操作的函数,这些函数的功能和前面所介绍的大致相同,但这类函数和BCB关系紧密,能使用BCB中的AnsiString等数据类型,在BCB中用这种方式的文件操作是最方便的,下面我就把这种文件操作详细介绍。
在BCB提供的这组文件操作函数中,可分为三种类型,就是:1、文件名函数,2、文件管理函数;3、文件I/O函数。
1、文件名函数文件名函数可以对文件的名称、所在子目录、驱动器和扩展名等进行操作。
下表列出这些函数及其功能。
函数说明:ExpandFileName() 返回文件的全路径(含驱动器、路径)ExtractFileExt() 从文件名中抽取扩展名ExtractFileName() 从文件名中抽取不含路径的文件名ExtractFilePath() 从文件名中抽取路径名ExtractFileDir() 从文件名中抽取目录名ExtractFileDrive() 从文件名中抽取驱动器名ChangeFileExt() 改变文件的扩展名ExpandUNCFileName() 返回含有网络驱动器的文件全路径ExtractRelativePath() 从文件名中抽取相对路径信息ExtractShortPathName() 把文件名转化为DOS的8·3格式MatchesMask() 检查文件是否与指定的文件名格式匹配下面就把这些函数作一一介绍:⑴ExpandFileName()原型:extern PACKAGE AnsiString __fastcall ExpandFileName(const AnsiString FileName);功能:返回文件的全路径(含驱动器、路径)参数:FileName:要处理的文件名例:ShowMessage(ExpandFileName(Application->ExeName));//显示你的程序文件名,如C:\MyBCB\Sample1.EXE⑵ExtractFileExt()原型:extern PACKAGE AnsiString __fastcall ExtractFileExt(const AnsiString FileName);功能:从文件名中抽取扩展名参数:FileName:要处理的文件名(全路径)例:ShowMessage(ExtractFileExt(Application->ExeName));//显示".exe"⑶ExtractFileName()原型:extern PACKAGE AnsiString __fastcall ExtractFileName(const AnsiString FileName);功能:从文件名中抽取不含路径的文件名参数:FileName:要处理的文件名例:ShowMessage(ExtractFileExt("c:\\Winnt\\SOL.EXE"));//显示"SOL.EXE"⑷ExtractFilePath()原型:extern PACKAGE AnsiString __fastcall ExtractFilePath(const AnsiString FileName);功能:从文件名中抽取路径名参数:FileName:要处理的文件名例:ShowMessage(ExtractFilePath("Winnt\\SOL.EXE"));//显示"Winnt\"⑸ExtractFileDir()原型:extern PACKAGE AnsiString __fastcall ExtractFileDir(const AnsiString FileName);功能:从文件名中抽取目录名(和上个函数不同,不包括最后的"\")参数:FileName:要处理的文件名例:ShowMessage(ExtractFileDir("Winnt\\SOL.EXE"));//显示"Winnt",注意和上个函数的区别⑹ExtractFileDrive()原型:extern PACKAGE AnsiString __fastcall ExtractFileDrive(const AnsiString FileName);功能:从文件名中抽取驱动器名参数:FileName:要处理的文件名例:ShowMessage(ExtractFileDrive("c:\\Winnt\\SOL.EXE"));//显示"c:"⑺ChangeFileExt()原型:extern PACKAGE System::AnsiString __fastcall ChangeFileExt(const System::AnsiString FileName, const System::AnsiString Extension);功能:更改文件名的扩展名,不是对真正的文件进行改名,只是对文件名这个字符串进行处理参数:FileName:要改名的文件名,Extension:新的扩展名例:ShowMessage(ChangeFileExt("c:\\Winnt\\SOL.EXE",".OOO"));//显示"c:\winnt\SOL.OOO"⑻ExpandUNCFileName()原型:extern PACKAGE AnsiString __fastcall ExpandUNCFileName(const AnsiString FileName); 功能:返回含有网络驱动器的文件全路径,格式为:\\机器名\共享名\文件名参数:FileName:要处理的文件名例:ShowMessage(ExpandUNCFileName("F:\\Winnt\\SOL.EXE"));/*如果F:是映射的网络驱动器\\NT40\WINNT,则显示"\\NT40\WINNT\SOL.EXE"*/⑼ExtractRelativePath()原型:extern PACKAGE AnsiString __fastcall ExtractRelativePath(const AnsiString BaseName, const AnsiString DestName);功能:从文件名中抽取相对路径信息,如"..\sss\ss.asd"这种形式参数:BaseName:基准文件名;DestName:目标文件名例:ShowMessage(ExtractRelativePath("D:\\Source\\c\\1.123","D:\\Source\\Asm\\dz.asm"));/*显示"..\asm\dz.asm"*/⑽ExtractShortPathName()原型:extern PACKAGE AnsiString __fastcall ExtractShortPathName(const AnsiString FileName);功能:把文件名转换为DOS的8、3格式参数:FileName:要处理的文件名例:ShowMessage(ExtractShortPathName("E:\\Program Files\\Dual WheelMouse\\4dmain.exe"));/*显示"E:\Progra~1\dualwh~1\4dmain.exe"*/⑾MatchesMask()原型:extern PACKAGE bool __fastcall MatchesMask(const AnsiString Filename, const AnsiString Mask);功能:检查文件是否与指定的文件名格式匹配参数:FileName:要处理的文件名;Mask:文件名格式,支持通配符例:ShowMessage(MatchesMask("Lxf.exe","*.?x?));//显示"true"2、文件管理函数这类函数包括设置和读取驱动器、子目录和文件的有关的各种操作,下表列出这类操作常用的函数及其功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
fscanf(fp, "%s", s) ; n = fun(s); fprintf(wf, "%ld\n", n) ; } fclose(fp) ; fclose(wf) ; }
#include <stdio.h> #include <string.h> long fun ( char *p) {
int len, t; /* len为串长,t为正负标识 */ long x=0; len=strlen(p); if(p[0]=='-') { t=-1; len--; p++; } else t=1; /* 以下完成数字字符串转换为一个数字 */ while(*p) x = x*10-48+(*p++); return x*t; }
请编写一个函数fun,它的功能是:将一个 数字字符串转换为一个整数(不得调用C语 言提供的将字符串转换为整数的。例如, 若输入字符串"-1234",则函数把它转换为整 数值 -1234。函数fun中给出的语句仅供参 考。 注意: 部分源程序存在文件PROG1.C文件 中。 请勿改动主函数main和其它函数中的任何 内容, 仅在函数fun的花括号中填入你编 写的若干语句。
C语言程序设计
主讲:黄复贤
二、文件操作函数
7.随机读写文件 1)文件定位 rewind 函数:指针移到文件首 fseek 函数移动文件内部位置指针 fseek(文件指针, 位移量, 起始点); “起始点”表示从何处开始计算位移量 文件首(SEEK_SET 或0) 当前位置(SEEK_CUR 或1) 文件尾(SEEK_END 或2)。 fseek(fp, 100L, 0);
感谢聆听
二、文件操作函数
7.随机读写文件 2)文件的随机读写 fread 函数和fwrite 函数 修改前面例题 中形成的 Mydat1.txt文件中第3 个学生的 数据。
二、文件操作函数
8.检测文件的函数 文件结束检测函数feof(文件指针) 文件结束,则返回值为1,否则为0。 读写文件出错检测函数 ferror(文件指针)返回值为0 表示未出错 文件出错标志和文件结束标志置0 clearerr(文件指针); 用于清除出错标志和文件结束标志r s[6]; long n; printf("Enter a string:\n") ; gets(s); n = fun(s); printf("%ld\n",n); NONO ( ); }
NONO ( ) {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */