当前位置:文档之家› c语言常用库函数

c语言常用库函数


9.5 文件的定位
1. rewind 函数 rewind函数的作用是将文件指针重置于文件的开头。 函数的作用是将文件指针重置于文件的开头。 函数的作用是将文件指针重置于文件的开头 将一磁盘文件显示在屏幕上并复制到另一文件。 例10.2 将一磁盘文件显示在屏幕上并复制到另一文件。 #include “stdio.h” main( ) {FILE *fp1, *fp2; fp1=fopen(“file1.c”, “r”); fp2=fopen(“file2.c”, “w”); while ( !feof(fp1)) putchar(fgetc(fp1) ); rewind(fp1); while ( !feof(fp1)) fputc(fgetc(fp1), fp2); fclose(fp1); fclose(fp2); }
/* /* /* /* /* /* /* /* /* 缓冲区饱和程度 文件状态标志 文件号 无缓冲区取消字符输入 缓冲区大小, 缺省值512 缓冲区大小 缺省值 缓冲区 当前活动指针 草稿文件标识 作正确性检验 */ */ */ */ */ */ */ */ */
9.3 文பைடு நூலகம்的打开与关闭
在对文件读、写之前必须先打开该文件, 在对文件读、写之前必须先打开该文件,使用结束 后应关闭该文件。 后应关闭该文件。 1. 文件打开函数 fopen 函数调用格式: 函数调用格式: FILE *fp; fp=fopen(“文件名”,“使用方式”); 文件名” 使用方式 使用方式” 文件名 以指定的使用方式打开指定的文件。 以指定的使用方式打开指定的文件。 说明: 说明 指向打开的文件后, 就可以用它来访问该文件。 用 fp 指向打开的文件后 就可以用它来访问该文件。 “文件名”为任何合法的 文件名” 文件名。 文件名 为任何合法的DOS文件名。 文件名 使用方式见下表 见下表: 使用方式见下表
4. fprintf 和 fscanf 函数 调用格式: 调用格式 fprintf(文件指针 格式字符串 输出项表 文件指针, 格式字符串, 输出项表); 文件指针 fscanf(文件指针 格式字符串 输入项表 文件指针, 文件指针 格式字符串, 输入项表); fprintf 和fscanf 函数与 函数与printf 和scanf 函数的不同 之处是:前者的对象为磁盘文件,而后者的对象为终端。 之处是:前者的对象为磁盘文件,而后者的对象为终端。 5. putw 和 getw 函数 调用格式: 调用格式 putw(i, fp); 将整型量 i 的值输出到 fp指向的文件 指向的文件 i=getw(fp);
2. fseek 函数与文件的随机读写 C的流式文件既可以顺序读写也可以随机读写。 的流式文件既可以顺序读写也可以随机读写。 的流式文件既可以顺序读写也可以随机读写 fseek的调用格式: 的调用格式: 的调用格式 fseek( fp, 位移量 起始点 位移量, 起始点); 其中: 为指向文件的指针 为指向文件的指针; 其中:fp为指向文件的指针; 起始点 代码 ANSI C标准的指定名 标准的指定名 0 SEEK_SET 文件开头 1 SEEK_CUR 文件当前位置 2 SEEK_END 文件末尾 位移量是以“起始点”为基点向前移动的字节数。 位移量是以“起始点”为基点向前移动的字节数。 ANSI C 规定在位移量的末尾加上字母 L 表示 表示long型, 型 以便在读写大于64K的文件时不致出错。 例如 的文件时不致出错。 以便在读写大于 的文件时不致出错 例如:
7. 读写其它类型的数据 ANSI C 标准的 fread 和 fwrite 函数可以读写任 何类型的数据。 何类型的数据。当用户使用的系统未提供这两个函数 可以定义所需的函数。 时,可以定义所需的函数。 以二进制方式写入一个实数 num 至 fp 指向的文 件之函数可以定义如下: 件之函数可以定义如下 putfloat(num, fp) float num; FILE *fp; { char *s; int count; s=&num; for (count=0; count<4; count++) putc(s[count], fp); }
9.2 文件类型指针
“文件指针”是缓冲文件系统中的一个重要概念。在 文件指针”是缓冲文件系统中的一个重要概念。 文件指针 C系统的头文件 stdio.h 中定义了一个名叫 FILE 的结构 系统的头文件 体类型: 体类型:
typedef struct { short unsigned char unsigned char short unsigned char unsigned char unsigned short }FILE; level; flage; fd; hold; bsize; *buffer; *curp; istemp; token;
将一个磁盘文件中的信息复制到另一个磁盘文件中。 例9.1 将一个磁盘文件中的信息复制到另一个磁盘文件中。 用带参数的main函数编写。 函数编写。 用带参数的 函数编写
#include “stdio.h” main(argc, argv) int argc; char *argv[ ]; {FILE *in, *out; char ch; if (argc != 3) {printf(“你忘了输入文件名.\n”); exit(0); } if((in=fopen(argv[1],“r”))==NULL) {printf(“cannot open infile.\n”); exit(0); } if((out=fopen(argv[2],“w”))==NULL) {printf(“cannot open outfile.\n”); exit(0); } while(!feof(in)) fputc(fgetc(in),out); fclose(in); fclose(out); }
使用 含 义 方式 r 只读 文本文件 只读(文本文件 文本文件) W 只写 文本文件 只写(文本文件 文本文件)
若文件不存在
若有此文件
返回错误标志 打开指定的文件 建立新文件 打开指定的文件并清空内容 打开指定的文件,但只能在文 a 添加 文本文件 添加(文本文件 文本文件) 建立新文件 打开指定的文件 但只能在文 件末尾添加数据 r+ 读/写(文本文件 返回错误标志 打开指定的文件 文本文件) 写 文本文件 w+ 读/写(文本文件 建立新文件 打开指定的文件并清空内容 文本文件) 写 文本文件 a+ 读/写(文本文件 建立新文件 打开指定的文件 可读 写 文本文件) 打开指定的文件,可读 可读/写 写 文本文件 rb 只读 二进制文件 返回错误标志 打开指定的文件 只读(二进制文件 二进制文件) wb 只写 二进制文件 建立新文件 打开指定的文件并清空内容 只写(二进制文件 二进制文件) 打开指定的文件,但只能在文 ab 添加 二进制文件 建立新文件 打开指定的文件 但只能在文 添加(二进制文件 二进制文件) 件末尾添加数据 rb+ 读/写(二进制文件 返回错误标志 打开指定的文件 二进制文件)返回错误标志 写 二进制文件 wb+ 读/写(二进制文件 建立新文件 打开指定的文件并清空内容 二进制文件)建立新文件 写 二进制文件 ab+ 读/写(二进制文件 建立新文件 打开指定的文件 可读 写 二进制文件)建立新文件 打开指定的文件,可读 可读/写 写 二进制文件
从 fp指向的文件中读入一个整数并赋 指向的文件中读入一个整数并赋 给整型变量 i
6. fgets 和 fputs 函数 fgets 函数的调用格式: 函数的调用格式: fgets(str, n, fp); 从 fp 指向的文件中读入 n–1 个字符并放到字符数 的首地址。 组 str 中。该函数的返回值为 str 的首地址。 fputs 函数的调用格式: 函数的调用格式: fputs(str,fp); 指向的文件中。这里的str 将一个字符串输出到 fp 指向的文件中。这里的 可以是字符串常量、字符串数组名或字符型指针。 可以是字符串常量、字符串数组名或字符型指针。 输出成功,函数值为0,失败时为非 。 输出成功,函数值为 ,失败时为非0。
文本文件中的回车换行符在输入时转换为一个换行符, 文本文件中的回车换行符在输入时转换为一个换行符 在输出时又转换为回车换行符。 在输出时又转换为回车换行符。 为了可靠地打开指定的文件, 常用下列方法: 为了可靠地打开指定的文件 常用下列方法: if ((fp=fopen(“file1” , “ r ”))==NULL) { printf(“cannot open this file\n”); exit(0); } 2. 文件关闭函数 fclose 使用完一个文件后必须关闭它, 使用完一个文件后必须关闭它,以防数据丢失和被 其它操作误用。 其它操作误用。 fclose函数的调用格式: 函数的调用格式: 函数的调用格式 fclose(文件指针 文件指针); 文件指针 关闭文件时的操作就是使指针与文件“脱钩” 关闭文件时的操作就是使指针与文件“脱钩”。正常 关闭时fclose函数返回 值,关闭有误时返回非0值。 函数返回0值 关闭有误时返回非 值 关闭时 函数返回
9.4 文件的读写
1. fgetc 函数 fgetc 函数的功能是从以读或读写方式打开的文件 中读入一个字符。调用格式: 中读入一个字符。调用格式: ch=fgetc(fp); ch 为字符型变量;fp为指向文件的文件类型指针。 为字符型变量; 为指向文件的文件类型指针 为指向文件的文件类型指针。 2. fputc 函数 fputc函数的功能是将一个字符写入以写方式打开的 函数的功能是将一个字符写入以写方式打开的 磁盘文件。 调用格式: 磁盘文件。 调用格式: fputc(ch, fp); ch是要输出的字符;fp为指向文件的文件类型指针。 是要输出的字符; 为指向文件的文件类型指针 为指向文件的文件类型指针。 是要输出的字符 EOF为标准文件的结束标志。在流式文件中,文件 为标准文件的结束标志。 为标准文件的结束标志 在流式文件中, 结束标志为feof。当fp指向的文件遇到文件结束标志时 指向的文件遇到文件结束标志时, 结束标志为 。 指向的文件遇到文件结束标志时 feof(fp)=1,否则为 。 ,否则为0。
相关主题