文件操作函数

文件操作函数
文件操作函数

C语言文件操作函数大全(超详细)

作者:字体:[增加减小] 类型:转载时间:2013-05-31 我要评论

本篇文章是对C语言中的文件操作函数进行了详细的总结分析,需要的朋友参考下

.

.

fopen(打开文件)

相关函数open,fclose

表头文件#include

定义函数FILE * fopen(const char * path,const char * mode);

函数说明参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态。

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 the

end 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 字符用来告诉函数库打开的文件为二进制文件,而非纯文字文件。不过在POSIX系统,包含Linux都会忽略该字符。由fopen()所建立的新文件会具有S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH(0666)权限,此文件权限也会参考umask值。

返回值文件顺利打开后,指向该流的文件指针就会被返回。若果文件打开失败则返回NULL,并把错误代码存在errno 中。

附加说明一般而言,开文件后会作一些文件读取或写入的动作,若开文件失败,接下来的读写动作也无法顺利进行,所以在fopen()后请作错误判断及处理。

范例

复制代码代码如下:

#include

main()

{

FILE * fp;

fp=fopen(“noexist”,”a+”);

if(fp= =NULL) return;

fclose(fp);

}

1. fprintf

功能:传送格式化输出到一个文件中

表头文件:#include

函数原型:int fprintf(FILE *stream, char *format[, argument,...]);

FILE* 一个FILE型的指针

char* 格式化输入函数,和printf里的格式一样

返回值:成功时返回转换的字节数,失败时返回一个负数

fp = fopen("/local/test.c","a+");

fprintf(fp,"%s\n",str);

2. fscanf

功能:从一个流中执行格式化输入

表头文件:#include

函数原型:int fscanf(FILE *stream, char *format[,argument...]);

FILE* 一个FILE型的指针

char* 格式化输出函数,和scanf里的格式一样

返回值:成功时返回转换的字节数,失败时返回一个负数

fp = fopen("/local/test.c","a+");

fscanf(fp,"%s",str);

3. clearerr(清除文件流的错误旗标)

相关函数feof

表头文件#include

定义函数void clearerr(FILE * stream);

函数说明clearerr()清除参数stream指定的文件流所使用的错误旗标。

返回值

4.fclose(关闭文件)

相关函数close,fflush,fopen,setbuf

表头文件#include

定义函数int fclose(FILE * stream);

函数说明fclose()用来关闭先前fopen()打开的文件。此动作会让缓冲区内的数据写入文件中,并释放系统所提供的文件资源。

返回值若关文件动作成功则返回0,有错误发生时则返回EOF并把错误代码存到errno。

错误代码EBADF表示参数stream非已打开的文件。

范例请参考fopen()。

5.fdopen(将文件描述词转为文件指针)

相关函数fopen,open,fclose

表头文件#include

定义函数FILE * fdopen(int fildes,const char * mode);

函数说明fdopen()会将参数fildes 的文件描述词,转换为对应的文件指针后返回。参数mode 字符串则代表着文件指针的流形态,此形态必须和原先文件描述词读写模式相同。关于mode 字符串格式请参考fopen()。

返回值转换成功时返回指向该流的文件指针。失败则返回NULL,并把错误代码存在errno 中。

范例

复制代码代码如下:

#include

main()

{

FILE * fp =fdopen(0,”w+”);

fprintf(fp,”%s/n”,”hello!”);

fclose(fp);

}

执行hello!

6.feof(检查文件流是否读到了文件尾)

相关函数fopen,fgetc,fgets,fread

表头文件#include

定义函数int feof(FILE * stream);

函数说明feof()用来侦测是否读取到了文件尾,尾数stream为fopen()所返回之文件指针。如果已到文件尾则返回非零值,其他情况返回0。

返回值返回非零值代表已到达文件尾。

7.fflush(更新缓冲区)

相关函数write,fopen,fclose,setbuf

表头文件#include

定义函数int fflush(FILE* stream);

函数说明fflush()会强迫将缓冲区内的数据写回参数stream指定的文件中。如果参数stream 为NULL,fflush()会将所有打开的文件数据更新。

返回值成功返回0,失败返回EOF,错误代码存于errno中。

错误代码EBADF 参数stream 指定的文件未被打开,或打开状态为只读。其它错误代码参考write()。

8.fgetc(由文件中读取一个字符)

相关函数open,fread,fscanf,getc

表头文件include

定义函数nt fgetc(FILE * stream);

函数说明fgetc()从参数stream所指的文件中读取一个字符。若读到文件尾而无数据时便返回EOF。

返回值getc()会返回读取到的字符,若返回EOF则表示到了文件尾。

范例

复制代码代码如下:

#include

main()

{

FILE *fp;

int c;

fp=fopen(“exist”,”r”);

while((c=fgetc(fp))!=EOF)

printf(“%c”,c);

fclose(fp);

}

9.fgets(由文件中读取一字符串)

相关函数open,fread,fscanf,getc

表头文件include

定义函数har * fgets(char * s,int size,FILE * stream);

函数说明fgets()用来从参数stream所指的文件内读入字符并存到参数s所指的内存空间,直到出现换行字符、读到文件尾或是已读了size-1个字符为止,最后会加上NULL作为字符串结束。

返回值gets()若成功则返回s指针,返回NULL则表示有错误发生。

范例

复制代码代码如下:

#include

main()

{

char s[80];

fputs(fgets(s,80,stdin),stdout);

}

执行this is a test /*输入*/

this is a test /*输出*/

10.fileno(返回文件流所使用的文件描述词)

相关函数open,fopen

表头文件#include

定义函数int fileno(FILE * stream);

函数说明fileno()用来取得参数stream指定的文件流所使用的文件描述词。

返回值返回文件描述词。

范例

复制代码代码如下:

#include

main()

{

FILE * fp;

int fd;

fp=fopen(“/etc/passwd”,”r”);

fd=fileno(fp);

printf(“fd=%d/n”,fd);

fclose(fp);

}

执行fd=3

12.fputc(将一指定字符写入文件流中)

相关函数fopen,fwrite,fscanf,putc

表头文件#include

定义函数int fputc(int c,FILE * stream);

函数说明fputc 会将参数c 转为unsigned char 后写入参数stream 指定的文件中。

返回值fputc()会返回写入成功的字符,即参数c。若返回EOF则代表写入失败。

范例

复制代码代码如下:

#include

main()

{

FILE * fp;

char a*26+=”abcdefghijklmnopqrstuvwxyz”;

int i;

fp= fopen(“noexist”,”w”);

for(i=0;i<26;i++)

fputc(a,fp);

fclose(fp);

}

13.fputs(将一指定的字符串写入文件内)

相关函数fopen,fwrite,fscanf,fputc,putc

表头文件#include

定义函数int fputs(const char * s,FILE * stream);

函数说明fputs()用来将参数s所指的字符串写入到参数stream所指的文件内。

返回值若成功则返回写出的字符个数,返回EOF则表示有错误发生。

范例请参考fgets()。

fread(从文件流读取数据)

相关函数fopen,fwrite,fseek,fscanf

表头文件#include

定义函数size_t fread(void * ptr,size_t size,size_t nmemb,FILE * stream);

函数说明fread()用来从文件流中读取数据。参数stream为已打开的文件指针,参数ptr 指向欲存放读取进来的数据空间,读取的字符数以参数size*nmemb来决定。Fread()会返回实际读取到的nmemb数目,如果此值比参数nmemb 来得小,则代表可能读到了文件尾或有错误发生,这时必须用feof()或ferror()来决定发生什么情况。

返回值返回实际读取到的nmemb数目。

附加说明

范例

复制代码代码如下:

#include

#define nmemb 3

struct test

{

char name[20];

int size;

}s[nmemb];

int main(){

FILE * stream;

int i;

stream = fopen(“/tmp/fwrite”,”r”);

fread(s,sizeof(struct test),nmemb,stream);

fclose(stream);

for(i=0;i

printf(“name*%d+=%-20s:size*%d+=%d/n”,i,https://www.360docs.net/doc/2f17748539.html,,i,s.size);

}

执行

name[0]=Linux! size[0]=6

name[1]=FreeBSD! size[1]=8

name[2]=Windows2000 size[2]=11

14.freopen(打开文件)

相关函数fopen,fclose

表头文件#include

定义函数FILE * freopen(const char * path,const char * mode,FILE * stream);

函数说明参数path字符串包含欲打开的文件路径及文件名,参数mode请参考fopen()说明。参数stream为已打开的文件指针。Freopen()会将原stream所打开的文件流关闭,然后打开参数path的文件。

返回值文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno 中。

范例

复制代码代码如下:

#include

main()

{

FILE * fp;

fp=fopen(“/etc/passwd”,”r”);

fp=freopen(“/etc/group”,”r”,fp);

fclose(fp);

}

15.fseek(移动文件流的读写位置)

相关函数rewind,ftell,fgetpos,fsetpos,lseek

表头文件#include

定义函数int fseek(FILE * stream,long offset,int whence);

函数说明fseek()用来移动文件流的读写位置。参数stream为已打开的文件指针,参数offset 为根据参数whence来移动读写位置的位移数。

参数whence为下列其中一种:

SEEK_SET从距文件开头offset位移量为新的读写位置。SEEK_CUR 以目前的读写位置往后增加offset个位移量。

SEEK_END将读写位置指向文件尾后再增加offset个位移量。

当whence值为SEEK_CUR 或SEEK_END时,参数offset允许负值的出现。

下列是较特别的使用方式:

1) 欲将读写位置移动到文件开头时:fseek(FILE *stream,0,SEEK_SET);

2) 欲将读写位置移动到文件尾时:fseek(FILE *stream,0,0SEEK_END);

返回值当调用成功时则返回0,若有错误则返回-1,errno会存放错误代码。

附加说明fseek()不像lseek()会返回读写位置,因此必须使用ftell()来取得目前读写的位置。范例

复制代码代码如下:

#include

main()

{

FILE * stream;

long offset;

fpos_t pos;

stream=fopen(“/etc/passwd”,”r”);

fseek(stream,5,SEEK_SET);

printf(“offset=%d/n”,ftell(stream));

rewind(stream);

fgetpos(stream,&pos);

printf(“offset=%d/n”,pos);

pos=10;

fsetpos(stream,&pos);

printf(“offset = %d/n”,ftell(stream));

fclose(stream);

}

执行offset = 5

offset =0

offset=10

16.ftell(取得文件流的读取位置)

相关函数fseek,rewind,fgetpos,fsetpos

表头文件#include

定义函数long ftell(FILE * stream);

函数说明ftell()用来取得文件流目前的读写位置。参数stream为已打开的文件指针。

返回值当调用成功时则返回目前的读写位置,若有错误则返回-1,errno会存放错误代码。错误代码EBADF 参数stream无效或可移动读写位置的文件流。

范例参考fseek()。

17.fwrite(将数据写至文件流)

相关函数fopen,fread,fseek,fscanf

表头文件#include

定义函数size_t fwrite(const void * ptr,size_t size,size_t nmemb,FILE * stream);

函数说明fwrite()用来将数据写入文件流中。参数stream为已打开的文件指针,参数ptr 指向欲写入的数据地址,总共写入的字符数以参数size*nmemb来决定。Fwrite()会返回实际写入的nmemb数目。

返回值返回实际写入的nmemb数目。

范例

复制代码代码如下:

#include

#define set_s (x,y) {strcoy(s[x].name,y);s[x].size=strlen(y);}

#define nmemb 3

struct test

{

char name[20];

int size;

}s[nmemb];

main()

{

FILE * stream;

set_s(0,”Linux!”);

set_s(1,”FreeBSD!”);

set_s(2,”Windows2000.”);

stream=fopen(“/tmp/fwrite”,”w”);

fwrite(s,sizeof(struct test),nmemb,stream);

fclose(stream);

}

执行参考fread()。

18.getc(由文件中读取一个字符)

相关函数read,fopen,fread,fgetc

表头文件#include

定义函数int getc(FILE * stream);

函数说明getc()用来从参数stream所指的文件中读取一个字符。若读到文件尾而无数据时便返回EOF。虽然getc()与fgetc()作用相同,但getc()为宏定义,非真正的函数调用。

返回值getc()会返回读取到的字符,若返回EOF则表示到了文件尾。

范例参考fgetc()。

19.getchar(由标准输入设备内读进一字符)

相关函数fopen,fread,fscanf,getc

表头文件#include

定义函数int getchar(void);

函数说明getchar()用来从标准输入设备中读取一个字符。然后将该字符从unsigned char转换成int后返回。

返回值getchar()会返回读取到的字符,若返回EOF则表示有错误发生。

附加说明getchar()非真正函数,而是getc(stdin)宏定义。

范例

复制代码代码如下:

#include

main()

{

FILE * fp;

int c,i;

for(i=0li<5;i++)

{

c=getchar();

putchar(c);

}

}

执行1234 /*输入*/

1234 /*输出*/

20.gets(由标准输入设备内读进一字符串)

相关函数fopen,fread,fscanf,fgets

表头文件#include

定义函数char * gets(char *s);

函数说明gets()用来从标准设备读入字符并存到参数s所指的内存空间,直到出现换行字符或读到文件尾为止,最后加上NULL作为字符串结束。

返回值gets()若成功则返回s指针,返回NULL则表示有错误发生。

附加说明由于gets()无法知道字符串s的大小,必须遇到换行字符或文件尾才会结束输入,因此容易造成缓冲溢出的安全性问题。建议使用fgets()取代。

范例参考fgets()

21.mktemp(产生唯一的临时文件名)

相关函数tmpfile

表头文件#include

定义函数char * mktemp(char * template);

函数说明mktemp()用来产生唯一的临时文件名。参数template所指的文件名称字符串中最后六个字符必须是XXXXXX。产生后的文件名会借字符串指针返回。

返回值文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno中。

附加说明参数template所指的文件名称字符串必须声明为数组,如:

char template[ ]=”template-XXXXXX”;

不可用char * template=”template-XXXXXX”;

范例

复制代码代码如下:

#include

main()

{

char template* +=”template-XXXXXX”;

mktemp(template);

printf(“template=%s/n”,template);

}

22.putc(将一指定字符写入文件中)

相关函数fopen,fwrite,fscanf,fputc

表头文件#include

定义函数int putc(int c,FILE * stream);

函数说明putc()会将参数c转为unsigned char后写入参数stream指定的文件中。虽然putc()与fputc()作用相同,但putc()为宏定义,非真正的函数调用。

返回值putc()会返回写入成功的字符,即参数c。若返回EOF则代表写入失败。

范例参考fputc()。

23.putchar(将指定的字符写到标准输出设备)

相关函数fopen,fwrite,fscanf,fputc

表头文件#include

定义函数int putchar (int c);

函数说明putchar()用来将参数c字符写到标准输出设备。

返回值putchar()会返回输出成功的字符,即参数c。若返回EOF则代表输出失败。

附加说明putchar()非真正函数,而是putc(c,stdout)宏定义。

范例参考getchar()。

24.rewind(重设文件流的读写位置为文件开头)

相关函数fseek,ftell,fgetpos,fsetpos

表头文件#include

定义函数void rewind(FILE * stream);

函数说明rewind()用来把文件流的读写位置移至文件开头。参数stream为已打开的文件指针。此函数相当于调用fseek(stream,0,SEEK_SET)。

返回值

范例参考fseek()

25.setbuf(设置文件流的缓冲区)

相关函数setbuffer,setlinebuf,setvbuf

表头文件#include

定义函数void setbuf(FILE * stream,char * buf);

函数说明在打开文件流后,读取内容之前,调用setbuf()可以用来设置文件流的缓冲区。参数stream为指定的文件流,参数buf指向自定的缓冲区起始地址。如果参数buf为NULL指针,则为无缓冲IO。Setbuf()相当于调用:setvbuf(stream,buf,buf?_IOFBF:_IONBF,BUFSIZ)

返回值

26.setbuffer(设置文件流的缓冲区)

相关函数setlinebuf,setbuf,setvbuf

表头文件#include

定义函数void setbuffer(FILE * stream,char * buf,size_t size);

函数说明在打开文件流后,读取内容之前,调用setbuffer()可用来设置文件流的缓冲区。参数stream为指定的文件流,参数buf指向自定的缓冲区起始地址,参数size为缓冲区大小。返回值

27.setlinebuf(设置文件流为线性缓冲区)

相关函数setbuffer,setbuf,setvbuf

表头文件#include

定义函数void setlinebuf(FILE * stream);

函数说明setlinebuf()用来设置文件流以换行为依据的无缓冲IO。相当于调用:setvbuf(stream,(char * )NULL,_IOLBF,0);请参考setvbuf()。

返回值

28.setvbuf(设置文件流的缓冲区)

相关函数setbuffer,setlinebuf,setbuf

表头文件#include

定义函数int setvbuf(FILE * stream,char * buf,int mode,size_t size);

函数说明在打开文件流后,读取内容之前,调用setvbuf()可以用来设置文件流的缓冲区。参数stream为指定的文件流,参数buf指向自定的缓冲区起始地址,参数size为缓冲区大小,参数mode有下列几种

_IONBF 无缓冲IO

_IOLBF 以换行为依据的无缓冲IO

_IOFBF 完全无缓冲IO。如果参数buf为NULL指针,则为无缓冲IO。

返回值

29.ungetc(将指定字符写回文件流中)

相关函数fputc,getchar,getc

表头文件#include

定义函数int ungetc(int c,FILE * stream);

函数说明ungetc()将参数c字符写回参数stream所指定的文件流。这个写回的字符会由下一个读取文件流的函数取得。

返回值成功则返回c 字符,若有错误则返回EOF。

复制代码代码如下:

#include

#include

int main()

{

FILE *fp = NULL;

char* str;

char re;

int num = 10;

str = (char*)malloc(100);

//snprintf(str, 10,"test: %s", "0123456789012345678");

// printf("str=%s\n", str);

fp = fopen("/local/test.c","a+");

if (fp==NULL){

printf("Fail to open file\n");

}

// fseek(fp,-1,SEEK_END);

num = ftell(fp);

printf("test file long:%d\n",num);

fscanf(fp,"%s",str);

printf("str = %s\n",str);

printf("test a: %s\n",str);

while ((re=getc(fp))!=EOF){//getc可以用作fgetc用

printf("%c",re);

}

//fread(str,10,10,fp);

fgets(str,100,fp);

printf("test a: %s\n",str);

sprintf(str,"xiewei test is:%s", "ABCDEFGHIGKMNI");

printf("str2=%s\n", str);

// fprintf(fp,"%s\n",str);

fwrite(str,2,10,fp);

num = ftell(fp);

if(str!=NULL){

free(str);

}

fclose(fp);

return 0;

}

C语言文件流操作函数大全

clearerr(清除文件流的错误旗标) 相关函数feof 表头文件#include 定义函数void clearerr(FILE * stream); 函数说明clearerr()清除参数stream指定的文件流所使用的错误旗标。 返回值 fclose(关闭文件) 相关函数close,fflush,fopen,setbuf 表头文件#include 定义函数int fclose(FILE * stream); 函数说明fclose()用来关闭先前fopen()打开的文件。此动作会让缓冲区内的数据写入文件中,并释放系统所提供的文件资源。 返回值若关文件动作成功则返回0,有错误发生时则返回EOF并把错误代码存到errno。错误代码EBADF表示参数stream非已打开的文件。 范例请参考fopen()。 fdopen(将文件描述词转为文件指针) 相关函数fopen,open,fclose 表头文件#include 定义函数FILE * fdopen(int fildes,const char * mode); 函数说明fdopen()会将参数fildes 的文件描述词,转换为对应的文件指针后返回。参数mode 字符串则代表着文件指针的流形态,此形态必须和原先文件描述词读写模式相同。关于mode 字符串格式请参考fopen()。 返回值转换成功时返回指向该流的文件指针。失败则返回NULL,并把错误代码存在errno 中。 范例 #include main() { FILE * fp =fdopen(0,”w+”); fprintf(fp,”%s\n”,”hello!”); fclose(fp); } 执行hello! feof(检查文件流是否读到了文件尾) 相关函数fopen,fgetc,fgets,fread 表头文件#include 定义函数int feof(FILE * stream);

IF函数的使用方法及操作实例

IF函数的使用方法及操作实例 分步阅读 IF函数:假设条件性的函数,即执行真假值的判断,根据逻辑计算的真假值,返回不同的结果。EXCEL中IF函数的使用非常广泛,特别是在单条件判断的时候,用好 IF函数可以帮我们完成很多功能。现结合具体的实例操作,进行说明:方法/步骤 1.一、IF函数的基本应用。 if(logical_test,value_if_true,value_if_false) IF是条件判断函数:=IF(测试条件,结果1,结果2),即如果满足“测试条件” 则显示“结果1”,如果不满足“测试条件”则显示“结果2”。 例一: 图1中,成绩结果60分以上(含60分)为及格,60分以下为不及格。执行IF 函数如下: 在C2单元格中输入:=IF(B2>=60,“及格”,“不及格”),再把此单元格格式往下拉动,即可。 注意:“及格”,“不及格”的双引号,要在英文输入法情况下输入的引号(" )。 如下图1。

2.二、IF函数的复杂应用。IF 函数条件带复合运算。 例二:股票佣金计算。在股票交易中,经常要考虑成本,而佣金占很大的成本。 佣金怎么计算?佣金:佣金费率最高千分之三,最低5元,不足5元,按5元收取。现在佣金费率以千分之三,运用IF函数进行计算。 图2中,红色单元格为佣金值。佣金 = 成交金额 * 佣金费率0.003 。在红色单元格D7中输入:=IF(D4*B7>=5,D4*B7,5) 就会自动计算佣金费。图 2.1为大于或等于5元时的情况,图2.2为不足5元时的情况,仍会显示5。 如下图2 3. 3 三、IF函数高级嵌套应用。

例三:IF函数嵌套运用。某公司销售提成的计算,销售额大于80万元(含80万),提成按40%计算;销售额为80-60万(含60万),提成按30%计算;销售额小于60万,提成按20%计算。计算方法:在C2单元格输入:=IF(B2>=800000,B2*0.4,IF(AND(B2<800000,B2>=600000),B2*0.3,IF(B2<600000,B2*0.2))) 如下图3。 END 注意事项 IF函数的嵌套,有几层IF条件,后面就有几个反括号。嵌套最多不要超过7层。

nodejs文件操作模块FS(File System)常用函数简明总结

nodejs文件操作模块FS(File System)常用函数简明总结 件系统操作相关的函数挺多的。首先可以分为两大类。 一类是异步+回调的。一类是同步的。 在这里只对异步的进行整理,同步的只需要在函数名称后面加上Sync即可 1.首先是一类最常规的读写函数,函数名称和形式,应该是起源于C语言的。 复制代码代码如下: fs.open(文件路径,读写标识,[文件mode值,666],回调函数(err,文件句柄fd)); fs.read(文件句柄fd,被写入的buffer,offset,length,position,回调函数(err,bytesRead,buffer)); fs.write(文件句柄fd,被读取的buffer,offset,length,position,回调函数(err,bytesWritten,buffer)); fs.close(文件句柄,回调函数) fs.truncate(文件句柄,截断长度,回调函数); fs.fsync(文件句柄,回调函数); 2.直接对文件进行读写的,用起来比较方便。 复制代码代码如下: fs.readFile(文件名,编码,回调函数(err,data)); fs.writeFile(文件名,数据,编码,回调函数(err)); fs.appendFile(文件名,数据,编码,回调函数(err)); 3.其它常用文件操作 复制代码代码如下: 判断文件是否存在 fs.exists(文件路径,callback(是否存在)); 重命名 fs.rename(旧文件名,新文件名,回调函数); 文件所有者变更 fs.chown(文件名,uid,gid,回调函数);/fs.fchown(文件句柄fd,uid,gid,回调函数);/fs.lchown(链接路径,uid,gid,回调函数); 文件权限变更 fs.chmod(文件名,mode,回调函数);/fs.fchmod(文件句柄,mode,回调函数);/fs.lchmod(链接路径,mode,回调函数); 文件信息 fs.stat(文件路径,回调函数(err.fs.Stats对象));/fs.fstat(文件句柄fd,回调函数(err.fs.Stats对象));/fs.lstat(链接路径,回调函数(err.fs.Stats对象)); 文件时间 fs.utimes(文件路径,访问时间,新建时间,回调函数);/fs.futimes(文件句柄,访问时间,新建时间,回调函数); 监视文件 fs.watchFile(文件名,[options],listener_callback(当前文件的stats,改变前的stats)); fs.unwatchFile(文件名); 4.目录操作 复制代码代码如下: fs.mkdir(路径,权限mode/777,回调函数); fs.rmdir(路径,回调函数);

C语言基础自学总结之十:文件操作

C语言基础自学总结之十:文件操作 要点: 1.文件操作,就是通过程序,操作文件 2.两个方面:读,写 一.fopen 打开文件 函数原型:FILE *fopen(char *filename, char *type);int fclose(FILE *fp); 头文件:#include 是否是标准函数:是 函数功能:函数fopen:打开一个流,即:打开一个文件。该函数有两个参数,filename是需要打开文件的文件名,type是打 开文件的方式。函数fclose:关闭一个流,即:关闭一个 文件,并释放文件缓冲区。fclose函数与fopen函数是相 对的两个函数。fclose函数的参数是指向文件的指针,应 用该函数用以在程序结束之前关闭文件,并释放文件缓冲 区。这样可以保证文件的数据不流失。 返回值:fopen:FILE类型,如果打开的文件存在,返回指向该文件的指针;如果打开的文件不存在,则在指定的目录下建立该 文件打开,并返回指向该文件的指针。fclose:整型,有错

返回非0,否则返回0。 例子1: #include int main(void) { FILE *FP=fopen("文件","打开方式");//返回值是file是一个 结构体,是一个结构体 的宏。 fclose(FP);//打开之后,用完了,就要关闭文件,fclose是跟 fopen一起使用的一个函数。 return 0; } 二. frend 读取 fread:从流中读取字符串函数 函数原型:int fread(void *buf, int size, int count, FILE *fp);头文件:#include 是否是标准函数:是 函数功能:从fp指向的文件中读取长度为size 的count个数据项,并将它输入到以buf为首地址的缓冲区中。此时,文件指针 fp会自动增加实际读入数据的字节数,即fp指向最后读入 字符的下一个字符位置。

VB_Open_文件操作类函数功能详解

VB Open 文件操作类函数功能详解: 1、Open 文件名[For方式] [Access存取类型] [锁定] AS [#]文件号[Len=记录长度] 功能: 为文件的输入输出分配缓冲区,并确定缓冲区所使用的存取方式 说明: (1)打开方式: 指定文件的输入输出方式,可选,默认是Random。可以是以下值: a、Output:指定顺序输出方式,将覆盖原有内容。 b、Input:指定顺序输入方式。 c、Append:指定顺序输出方式,在文件未尾追加内容。 d、Random:指定随机存取方式,也是默认方式,在Random方式时,如果没有Access子句,则在执行Open语句时,VB将按下列顺序打开文件:读/写、只读、只写。 e、Binary:指定二进制文件。在这种方式下,可以用Get和Put语句对文件中任何字节位置的信息进行读写。在Binary方式中,如果没有Access子句,则打开文件的类型与Random方式相同。 (2)存取类型: 放在关键字Access之后,用来指定访问文件的类型。可以是下列类型之一: a、Read:打开只读文件。 b、Write:打开只写文件。 c、Read Write:打开读写文件。这种类型只对随机文件、二进制文件及用Appe nd方式打开的文件有效。 (3)锁定类型: 该子句只在多用户或多进和环境中使用,用来限制其他用户或其他进程对打开进行读写操作。锁定类型包括: a、默认:如不指定锁定类型,则本进程可以多次打开文件进行读写;在文件打开期间,其他进程不能对该文件执行读写操作。 b、Lock Shared:任何机器上的任何进程都可以对该文件进行读写操作。 c、Lock Read:不允许其他进程读该文件。只在没有其他Read存取类型的进程访问该文件时,才允许这种锁定。 d、Lock Write:不允许其他进程写这个文件。只在没有其他Write存取类型的进程访问该文件时,才允许这种锁定。 e、Lock Read Write:不允许其他进程读写这个文件。 如果不使用lock子句,则默认为Lock Read write。 (4)文件号: 由用户自行指定一个由1~511之间的整数,只要该文件号未被使用就合法;打开文件后,可以用该文件号进行读写等操作。

vlookup函数的使用方法实例

VLOOKUP函数是Excel中的一个纵向查找函数,它与LOOKUP函数和HLOOKUP函数属于一类函数,在工作中都有广泛应用。VLOOKUP是按列查找,最终返回该列所需查询列序所对应的值;与之对应的HLOOKUP是按行查找的。 VLOOKUP函数的语法结构 整个计算机就相当于一门语言,首先我们就是要获取该函数的语法结构。以下是官网的语法结构 VLOOKUP(lookup_value, table_array, col_index_num, [range_looku p])。 书上表述就是VLOOKUP(查找值,查找范围,查找列数,精确匹配或者近似匹配) 在我们的工作中,几乎都使用精确匹配,该项的参数一定要选择为false。否则返回值会出乎你的意料。 VLOOKUP函数使用示范 vlookup就是竖直查找,即列查找。通俗的讲,根据查找值参数,在查找范围的第一列搜索查找值,找到该值后,则返回值为:以第一列为准,往后推数查找列数值的这一列所对应的值。这也是为什么该函数叫做vlookup(v为vertic al-竖直之意,lookup即时英文的查找之意)。 现有如下手机的每日销售毛数据(图左),A分销商需要提供四个型号的销售数据(图右)

这个时候,你大概可能回去一个一个人工查找,因为我所提供的数据数量很少,但是其实工作中这种数据很庞大的,人工查找无疑即浪费时间,而且不能让A分销商相信你所提供数据的准确性。接下来,我们就需要本次的主角登场了。使用vlookup函数。 第一步:选中要输入数据的单元格,=VLOOKUP(H3,$A$3:$F$19,5,FALSE)如图

文件操作函数

var file_name:string; file_name:='c:\luther.gliethttp.txt'; FileWrite(com.log_fd, PChar(file_name)^, length(file_name)); 文件是同一种类型元素的有序集合,是内存与外设之间传输数据的渠道。文件的本质是一个数据流,所有的文件实际上是一串二进制序列。 文件管理包括:1、文件操作。2、目录操作。3、驱动器操作。三部分。 1、常见文件操作函数和过程。 1.1、AssignFile过程 作用:将一个外部文件的文件名与一个File类型的变量关联,并对变量进行初始化。 原型:procedure AssignFile(var F; FileName: String); F:一个File类型的变量,可以是任何数据类型。 FileName:外部文件的文件名。 1.2、FileExists函数 作用:用于测试指定文件名的文件是否存在。 原型:function FileExists(const FileName: String): Boolean; FileName:文件名。字符串类型。 注意:如果文件存在,返回True;否则,返回False。 1.3、Append过程 作用:为在一个已经存在的文件末尾添加文本做好准备工作。文件是只写方式打开的。 原型:procedure Append(var F: Text); F: 一个TextFile类型变量。 注意:这是一个对文本类型文件操作的过程。其中变量F必须和外部文件关联。如果F没有与外部文件关联,将抛出异常。如果F已经处于打开状态,则过程会关闭F并重新打开。文件指针位置将被设置在文件末尾。 1.4、Reset过程 作用:对于文本文件,Reset过程将以只读方式打开文件。对于类型文件和无类型文件,Reset 过程将以可读写方式打开文件。打开已存在文件,打开不存在文件用Rewrite 原型:procedure Reset(var F [: File; RecSize: Word ] ); F:File类型变量,可以是任何文件类型。 RecSize:文件的大小。它是一个可选的选项,只有当F为无类型文件时才可以被指定。如果F为无类型文件,则RecSize指定了在数据传输过程中使用的记录的大小。如果参数RecSize被省略了,则默认的记录大小为128字节。 注意:当该过程打开文件时,如果文件不存在则产生异常。如果文件已经打开了,则先关闭文件,然后重新打开,并将文件指针放到文件开头处。默认的文件模式(FileMode)为2,即可读写模式。如果文件模式在调用Reset过程前都还未改变,则尝试打开一个只读文件会失败。当调用Reset过程后,如果文件为空,则Eof函数返回True,否则返回False。 1.5、Rewrite过程 作用:对于一个已存在的文件,此操作将使文件被覆盖。对于一个不存在的文件,将创建并打开文件。对于一个已打开的文件,则关闭文件,并重新创建一个新的文件(覆盖原有的)。文件指针也被设置到空文件的开头处。 原型:procedure Rewrite(var F: File [; Recsize: Word ] ); F:File类型变量,可以是任何文件类型。 RecSize:文件的大小。它是一个可选的选项,只有当F为无类型文件时才可以被指定。如果F为无类型文件,则RecSize指定了在数据传输过程中使用的记录的大小。如果

文件操作函数

C语言文件操作函数大全(超详细) 作者:字体:[增加减小] 类型:转载时间:2013-05-31 我要评论 本篇文章是对C语言中的文件操作函数进行了详细的总结分析,需要的朋友参考下 . . fopen(打开文件) 相关函数open,fclose 表头文件#include 定义函数FILE * fopen(const char * path,const char * mode); 函数说明参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态。 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 the end 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

C语言文件操作函数总结

文件操作函数: 打开方式的取值和意义如下: ◆"r":该打开方式为只读方式 ◆"w":该打开方式为只写方式 ◆"a":该打开方式为尾加方式 ◆"r+":该打开方式为读/写方式,相当于"r"与"w"方式的结合。 ◆"w+":该打开方式为读/写方式,相当于"r"与"w"方式的结合。 ◆"a+":该打开方式为读/尾加方式 ◆"rb":该打开方式为只读方式 ◆"wb":该打开方式为只写方式 ◆"ab":该打开方式为尾加方式 ◆"rb+":该打开方式为读/写方式,相当于"rb"与"wb"方式的结合。 ◆"wb+":该打开方式为读/写方式,相当于"rb"与"wb"方式的结合。 ◆"ab+":该打开方式为读/尾加方式 打开文件:fopen( "文件路径",“使用文件方式”)。 关闭文件: fclose( 文件指针)。 char fgetc(FILE *p); 函数读取参数p指向的文件。fgetc函数返回一个字符。 处理读取结束:对于文本文件,如果读取位置到达文件末尾,fgetc函数返回一个结束标志EOF ; ANSI C提供了一个feof(FILE *p) 函数,当fgetc函数读取到文件末尾时,feof(FILE *p)函数返回1,否则返回0。 char * fgets(char str[],int n,FILE *p) ; 函数读取参数p指向的文件每次调用fgets(char str[],int n,FILE *p) 就顺序地读取n个字节,如此顺序地读取,直到读取的n个字节包含文件的结束标志。 fgets函数按文本方式读取文件,如果读取的n个字节中含有文件的结束标志EOF,fgets函数返回NULL。 char fputs(char str[],FILE *p); 向参数p指向的文件写入字符数组str。每次调用fputs函数就顺序地向文件中写入字符串str,如此顺序地写入,直到停止调用fputs函数或发生写入错误。

C语言中的文件操作相关函数

文件的打开与关闭,读与写操作的相关函数,在对文件操作之前,必须定义一个文件指针,这样的话,才能对该文件进行操作。c语言中的文件操作相关函数的头文件都是 #include FILE * fp;//可以是任何其他指针名 1)open()函数 函数功能:文件打开函数 函数原型:fp=fopen(文件名,使用文件方式); FILE *fopen(const char *path,const char *mode); //文件名模式 函数说明:如果是当前工作目录下的文件,可以不用加路径名,如果是其他目录下的则需要加路径 函数参数:以mode的方式打开或创建文件 函数返回值:如果成功,将返回一个文件指针,失败则返回NULL(其实就是0) 函数注意:文件名和打开的方式在写的时候,必须用双引号括起来 在Linux 系统中,mode 里面的’b’(二进制)可以去掉,但是为了保持与其他系统的兼容性,建议不要去掉。ab和a+b 为追加模式,在此两种模式下,无论文件读写点定位到何处,在写数据时都将是 在文件末尾添加,所以比较适合于多进程写同一个文件的情况下保 证数据的完整性。 使用文件的方式如下: “r”(只读):为输入打开一个文本文件对文件进行读操作 “w”(只写):为输出打开一个文本文件对文件进行写操作 “a”(追加): 向文本文件尾添加数据

“rb”(只读):为输入打开有一个二进制文件 “wb”(只写):为输出打开一个二进制文件对文件进行写操作“ab”(追加): 向二进制文件尾添加数据 “r+”(读写):为读写打开一个文本文件 “w+”(读写):为读写建立一个新的文本文件 “a+”(读写): 向文本文件尾添加数据 “rb+”(读写):为读写打开一个二进制文件 “wb+”(读写):为读写建立一个新的二进制文件 “ab+”(读写): 为读写打开一个进制文件 模式读写位置截断原内容创建 rb Y N 文件头 N N r+b Y Y 文件头 NN wb N Y 文件头 Y Y w+b Y Y 文件头 YY ab N Y 文件尾 N Y a+b Y Y 文件尾 N Y 2)fclose()函数 函数功能:文件的关闭 函数原型:fclose(文件指针) int fclose(FILE *stream) 函数返回值:成功关闭文件返回值为0,否则返回EOF(-1);

文件操作

实验八文件操作 一、实验目的 1.掌握文件、文件缓冲系统、文件指针的概念; 2.学会使用缓冲文件系统中的文本及流式方式将文件打开、关闭、读、写等文件操作函数; 3.掌握并理解读写文件与文件缓冲区、程序数据区之间数据交换流程。 二、实验内容及要求 1、从键盘输入多个字符串,然后将其保存到磁盘上的文件file1.txt上,该文件打开时用文本模式; 要求: (1)利用gets字符串函数从键盘输入多个字符串,放入到字符数组。 (2)利用fopen函数打开文件,要指定file1.txt的文件路径(注意:文件路径的表示方法)。(3)利用fputs函数将字符数组里的字符串写到文件里(注意:在输出一个字符串后,要人为将一个’\n’写到文件里)。 (4)利用fgets函数将文件里的字符串读出显示到屏幕上 (知识点:文本文件的打开、关闭操作,fopen函数和fputs函数的使用。) 2、修改上题的程序:用结构体定义学生学号、姓名、成绩,输入若干个数据到file2.txt中,并将其显示在显示器上。 要求: (1)定义一个结构体数组,数组元素为结构体类型,成员有学号、姓名、成绩,数组长度为SIZE。 (2)定义一个save函数,利用fwite函数将数组中的元素写到指定的file2.txt文件中。(3)定义一个print函数,利用fread函数将file2.txt文件中的成组数据读入到内存,再显示到屏幕上。 (4)在主函数里调用save和print 函数。 (知识点:二进制文件的打开、关闭操作,fwite函数和fread函数的使用。) 3、应用读写定位指针,将2中的第奇数个学生的数据,写入到另一个file3.txt文件中并将其显示在显示器上进行比较。 要求: (1)按二进制只读方式分别打开file2.txt和file3.txt文件。(注意:需要设两个文件指针)(2)利用fseek函数将文件位置标记指向file2.txt文件开头,每次位移量应定位在第奇数个学生上。 (3)利用fread函数将file2.txt文件中的当前学生数据读入到内存中的结构体数组元素上,再显示到屏幕上。 (4)利用fwite函数将数组中的元素写到指定的file3.txt文件中。 (5)利用feof函数判断file2.txt文件信息是否读完,最后关闭两个文件。 (知识点:fseek函数和feof函数的使用。)

教学设计——《Excel函数的使用》

《Excel函数的使用》教学设计 一、现状分析 使用函数对数据进行处理是Excel的一个重要功能,也是本章的重点和难点,学生较难掌握。本节课的前一节内容是使用公式对数据进行处理,本班学生对这一部分内容掌握的较好,理解得也较透彻,为这节课内容的学习打下了良好的基础。 二、关于教学目标 根据学生的实际情况及本节课的学习内容,特制定以下三维目标: 知识与技能: 1、掌握自动求和的方法 2、掌握常用Excel函数(SUM、A VERAGE、MAX、MIN)的使用方法 过程与方法: 1、通过情景引入,体会在Excel中函数与公式的不同 2、通过“反应力”游戏理解Excel函数 3、通过实际操作、小组讨论,掌握常用Excel函数使用方法 情感、态度、价值观: 愿意主动思考、总结Excel函数的一般使用方法 三、关于教学策略、设想及预期结果 在Excel中函数的许多功能也可以用公式解决,但很多情况下函数要简单得多,为了使学生有这一认识,本节课的引入用了国际象棋棋盘放米粒的传说,要求学生计算结果,不仅使学生很容易领会公式与函数的不同,同时也提高了学生学习函数的兴趣,一举两得。学生对函数的理解可能有一定的困难,尤其是函数中所引用的单元格格式。本节课,通过自动求和按钮引出函数,并设计“反应力”游戏,使学生在游戏中理解Excel函数的意义。根据教材要求,需掌握的具体函数为SUM、A VERAGE、MAX、MIN,而Excel的函数有一百多个,本节课力图通过学生自己看书、探究Average函数的使用方法,掌握一般函数的使用方法,从而培养学生学会看书自学、对“对话框”窗口的探究能力等自主学习的方法。通过提问,让学生自己总结函数的一般使用方法。 四、教学资源 P P T演示文稿“”、E x c e l文件“” 附:《Excel函数的使用》教案

C语言文件操作函数mktemp

mktemp 目录 C语言创建唯一临时文件函数mktemp 程序示例1 程序例2C语言创建唯一临时文件函数mktemp 函数简介 头文件:在TC2.0中其头文件是dir.h,在Visual C++ 6.0中,更多的使用_mktemp,其头文件是io.h 定义函数 char * mktemp(char * template); 功能: mktemp()用来产生唯一的临时文件名。参数template所指的文件名称字符串中最后六个字符必须是XXXXXX。产生后的文件名会借字符串指针返回。 返回值:文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno中。 其他创建临时文件的函数:tmpfile,tmpnam程序示例 程序示例1 (在Visual C++ 6.0中运行通过) #include #include #include int main() { char *templat="fnXXXXXX"; char *result; char names[5][9]; int Count ; for(Count=0; Count<5;Count++) { strcpy(names[Count],templat); result=_mktemp(names[Count]); printf("%s\n\r",result); } return 0; } 程序例2 (在TC2.0中运行成功) #include #include int main(void) { FILE *fp; char *fname = "d:\\TXXXXXX", *newname, first; newname = mktemp(fname); fp = fopen(newname,"w+");

C语言文件操作函数大全

~~~~~~~~~~##打印了好好学习##~~~~~~~~~~歪诗协会QQ978107204 C语言文件操作函数大全 相关函数feof 表头文件#include 定义函数void clearerr(FILE * stream); 函数说明clearerr()清除参数stream指定的文件流所使用的错误旗标。 返回值 fclose(关闭文件) 相关函数close,fflush,fopen,setbuf 表头文件#include 定义函数int fclose(FILE * stream); 函数说明fclose()用来关闭先前fopen()打开的文件。此动作会让缓冲区内的数据写入文件中,并释放系统所提供的文件资源。 返回值若关文件动作成功则返回0,有错误发生时则返回EOF并把错误代码存到errno。 错误代码EBADF表示参数stream非已打开的文件。 范例请参考fopen()。 fdopen(将文件描述词转为文件指针) 相关函数fopen,open,fclose 表头文件#include 定义函数FILE * fdopen(int fildes,const char * mode); 函数说明fdopen()会将参数fildes 的文件描述词,转换为对应的文件指针后返回。参数mode 字符串则代表着文件指针的流形态,此形态必须和原先文件描述词读写模式相同。关于mode 字符串格式请参考fopen()。 返回值转换成功时返回指向该流的文件指针。失败则返回NULL,并把错误代码存在errno中。 范例 #include main() { FILE * fp =fdopen(0,”w+”); fprintf(fp,”%s\n”,”hello!”); fclose(fp); } 执行hello! feof(检查文件流是否读到了文件尾) 相关函数fopen,fgetc,fgets,fread 表头文件#include 定义函数int feof(FILE * stream); 函数说明feof()用来侦测是否读取到了文件尾,尾数stream为fopen()所返回之文件指针。如果已到文件尾则返回非零值,其他情况返回0。 返回值返回非零值代表已到达文件尾。 fflush(更新缓冲区) 相关函数write,fopen,fclose,setbuf 表头文件#include 定义函数int fflush(FILE* stream); 函数说明fflush()会强迫将缓冲区内的数据写回参数stream指定的文件中。如果参数stream为NULL,fflush()会将所有打开的文件数据更新。 返回值成功返回0,失败返回EOF,错误代码存于errno 中。 错误代码EBADF 参数stream 指定的文件未被打开,或打开状态为只读。其它错误代码参考write()。fgetc(由文件中读取一个字符) 相关函数open,fread,fscanf,getc 表头文件include 定义函数nt fgetc(FILE * stream); 函数说明fgetc()从参数stream所指的文件中读取一个字 符。若读到文件尾而无数据时便返回EOF。 返回值getc()会返回读取到的字符,若返回EOF则表示到了文件尾。 范例 #include main() { FILE *fp; int c; fp=fopen(“exist”,”r”); while((c=fgetc(fp))!=EOF) printf(“%c”,c); fclose(fp); } fgets(由文件中读取一字符串) 相关函数open,fread,fscanf,getc 表头文件include 定义函数har * fgets(char * s,int size,FILE * stream); 函数说明fgets()用来从参数stream所指的文件内读入字符并存到参数s所指的内存空间,直到出现换行字符、读到文件尾或是已读了size-1个字符为止,最后会加上NULL作为字符串结束。 返回值gets()若成功则返回s指针,返回NULL则表示有错误发生。 范例 #include main() { char s[80]; fputs(fgets(s,80,stdin),stdout); } 执行this is a test /*输入*/ this is a test /*输出*/ fileno(返回文件流所使用的文件描述词) 相关函数open,fopen 表头文件#include 定义函数int fileno(FILE * stream); 函数说明fileno()用来取得参数stream指定的文件流所使用的文件描述词。 返回值返回文件描述词。 范例 #include main() { FILE * fp; int fd; fp=fopen(“/etc/passwd”,”r”); fd=fileno(fp); printf(“fd=%d\n”,fd); fclose(fp);

I&O文件操作常用函数详细说明

目录 一、常用函数列表 (2) 二、函数详细说明 (2) 1.open() (2) 2.close() (3) 3.lseek() (3) 4.read() (3) 5.write() (3) 6.eof() (3) 7.filelength() (3) 8.rename() (4) 9.chsize() (4)

这是C提供的另一种文件操作,它是通过直接存/取文件来完成对文件的处理,而上篇所说流式文件操作是通过缓冲区来进行;流式文件操作是围绕一个FILE指针来进行,而此类文件操作是围绕一个文件的“句柄”来进行,什么是句柄呢?它是一个整数,是系统用来标识一个文件(在WINDOWS中,句柄的概念扩展到所有设备资源的标识)的唯一的记号。此类文件操作常用的函数如下表,这些函数及其所用的一些符号在io.h和fcntl.h中定义,在使用时要加入相应的头文件。 一、常用函数列表 open() 打开一个文件并返回它的句柄 close() 关闭一个句柄 lseek() 定位到文件的指定位置 read() 块读文件 write() 块写文件 eof() 测试文件是否结束 filelength() 取得文件长度 rename() 重命名文件 chsize() 改变文件长度 二、函数详细说明 1.open() 打开一个文件并返回它的句柄,如果失败,将返回一个小于0的值,原型是int open(const char *path, int access [, unsigned mode]); 参数path是要打开的文件名,access是打开的模式,mode是可选项。表示文件的属性,主要用于UNIX系统中,在DOS/WINDOWS这个参数没有意义。其中文件的打开模式如下: O_RDONL Y 只读方式O_WRONL Y 只写方式 O_RDWR 读/写方式O_NDELAY 用于UNIX系统 O_APPEND 追加方式O_CREAT 如果文件不存在就创建 O_TRUNC 把文件长度截为0 O_EXCL 和O_CREAT连用,如果文件存在返回错误O_BINARY 二进制方式O_TEXT 文本方式 对于多个要求,可以用"|"运算符来连接,如O_APPEND|O_TEXT表示以文本模式和追加方式打开文件。 例:int handle=open("c:\\msdos.sys",O_BINARY|O_CREAT|O_WRITE)

SQL中经典函数使用实例大全

select substring(CODE_KIND,2,3)kind from code //2处为起始位置,3为获取字符的长度。 select left(CODE_KIND,3)from CODE //返回从左边数起的3个字符,right()函数反之。 select left('1233',2) select upper(code_name)name from code //将字符串中每个小写字母转换为大写字母,lower 转化成小写。 select REVERSE(code_name)code_name from code //将查询结果反过来。 SELECT row_number()over (order by code_kind)as kind,*from code

with codeT as ( SELECT row_number()over (order by code_kind desc)as kind,*from code ) select*from codeT where kind>1 and kind<4 SELECT RANK()over (order by code_kind)as kind,*from code //rand() 查询出来的数字不是连续的。DENSE_RANK()查出来的反之。 SELECT DENSE_RANK()over (order by code_kind)as kind,*from code

學習SQL中事務,以及upper(),right(),RANK(),DENSE_RANK(),replace()等等一些操作sql中字符串的常用函數。可快速查找出sql中符合自己所想要的數據。 可以。比如说现在有两个排序字段,如果根据第1个字段排不出来(有几条记录的这个字段相同)的话,再根据第2个字段排的。 请看下面的例子: 可多字段排序,当多字段排序时,首先排序第一个字段,当第一个字段值相同时,才按第二个字段排序,如果第二个字段值相同,才按第三个排序... 比如说现在有两个排序字段,如果根据第1个字段排不出来(有几条记录的这个字段相同)的话,再根据第2个字段排的 排序前(注意红色标记部分的数据): SQL语句: select * from Test where uname like 'Test%' order by score desc, uname asc; 排序后(注意红色标记部分的数据):

C语言文件操作常用函数详解

C语言文件操作常用函数 详解 This model paper was revised by the Standardization Office on December 10, 2020

C语言文件操作详解 在C语言文件操作的过程中,通常有以下几种方式: 1.单个字符的操作: fputc 函数原型:intfputc(intc,FILE*fp); 功能:把一字节代码c写入fp指向的文件中 返回值:正常,返回c;出错,为EOF(-1) fgetc 函数原型:intfgetc(FILE*fp); 功能:从fp指向的文件中读取一字节代码 返回值:正常,返回读到的代码值;读到文件尾或出错,为EOF(-1) feof 函数原型:intfeof(FILE*fp); 功能:判断文件是否到末尾 返回值:文件未结束,返回0;文件结束,返回真(非0)示例: #include #include voidmain() { charch; FILE*fp1=fopen("d:\\a.dat","wb");/*以写的方式打开二进制文件*/ FILE*fp2; if(NULL==fp1) { printf("Cannotopenthisfile!\n"); exit(0); } printf("pleaseinputastring:"); ch=getchar(); while(ch!='#')/*输入#号结束*/ { fputc(ch,fp1);/*依次向文件中写*/ ch=getchar(); } fflush(stdin);/*清空输入缓冲区*/ fclose(fp1); /*关闭文件*/ fp2=fopen("d:\\a.dat","rb");/*以读的方式打开二进制文件*/ if(NULL==fp2) {

vlookup函数的操作实例

vlookup函数的操作实例 如下图,已知表sheet1中的数据如下,如何在数据表二 sheet2 中如下引用:当A列学号随机出现的时候,如何在B列显示其对应的物理成绩? 首先我们知道需要用到vlookup函数,那么先介绍一下使用 vlookup函数的几个参数,vlookup是判断引用数据的函数,它总共有四个参数,依次是: 1、判断的条件 2、跟踪数据的区域 3、返回第几列的数据 4、是否精确匹配 根据以上参考,和上述在sheet2表的B列显示问题的实际需求,在sheet2表的B2单元格输入这个公式是: =vlookup(a2,sheet1!$a$2:$f$100,6,true) 详细说明一下,在此vlookup函数例子中各个参数的使用说明: 1、a2 是判断的条件,也就是说sheet1表和sheet2表中学号相同者,即sheet2表a列对应的数据和sheet1表中学号列a列的数据相同方能引用; 2、sheet1!$a$2:$f$100 是数据跟踪的区域,因为需要引用的数据在f列,所以跟踪的区域至少在f列,sheet1!是不同表间引用所用的表名称,和标志是表间引用的!符号,$是绝对引用(关于绝对引用可以参考这里),$a$2:$f$100 表明

从A2到F100单元格的数据区域,如果数据区域不止100,那么可以直接使用A:F,这样虽然方便但是有风险,因为如果sheet1表的下方还有其它数据,就有可能出现问题; 3、6 这是返回什么数的列数,如上图的物理是第6列,所以应该是6,如果要求英语的数值,那么此处应该是5 4、是否绝对引用,如果是就输入 true 如果是近似即可满足条件那么输入false (近似值主要用于带小数点的财务、运算等) 5、vlookup是垂直方向的查找,如果是水平方向查找可使用Hlookup函数,使用方法类似。 结果如下图:

相关文档
最新文档