fprintf ( 文件指针,格式字符串,输出表列);
fscanf ( 文件指针,格式字符串,输入表列);
从磁盘文件中按格式读入或输出字符。
fprintf(fp, "%d,%6.2f", i, t);
fscanf (fp, "%d,%f", &i, &t);
位置指针按字节位置顺序移动。
读写完上一个字符(字节)后,并不一定要
读写其后续的字符(字节),而可以读些文
件中任意位置上所需要的字符(字节)。
fseek函数(一般用于二进制文件)
改变文件的位置指针
fseek(文件类型指针,位移量,起始点)
文件开头 SEEK_SET 0
文件当前位置 SEEK_CUR 1
文件末尾 SEEK_END 2
#if 0
#include <stdio.h>
#include <stdlib.h>
struct student
{
char name[10];
int num;
int age;
char addr[15];
}boy;
void main()
{
FILE *fp;
int i=1; // 用于定位第 i 个结构
if( !(fp = fopen("student-list", "r")))
{
printf("Cannot open the file!\n");
return;
}
rewind(fp);
fseek(fp, i*sizeof(struct student), 0);
fread(&boy, sizeof(struct student), 1, fp);
printf("name\tnumber age addr\n");
printf("%s\t%5d %7d %s\n", boy.name, boy.num, boy.age, boy.addr);
system("pause");
}
#endif
得到流式文件中的当前位置,用相对于文件开
头的位移量来表示。
返回当前位置,出错时返回-1L。
i = ftell(fp);
if(i == -1L) printf(“error\n”);
ferror(fp);
返回0,表示未出错;返回非0,表示出错。
在调用一个输入输出函数后立即检查ferror函
数的值,否则信息会丢失。在执行fopen函数
时,ferror函数的初始值自动置为0。
clearerr(fp);
使文件错误标志和文件结束标志置为0。
分类 函数名 功能 |
打开文件 fopen() 打开文件 |
关闭文件 fclose() 关闭文件 |
文件定位 fseek() 改变文件位置指针的位置 |
rewind() 使文件位置指针重新至于文件开头 |
ftell() 返回文件位置指针的当前值 |
文件状态 feof() 若到文件末尾,函数值为真 |
ferror() 若对文件操作出错,函数值为真 |
clearerr() 使ferror和feof()函数值置零 |
分类 函数名 功能 |
文件读写 fgetc(),getc()从指定文件取得一个字符 |
fputc(),putc()把字符输出到指定文件 |
fgets()从指定文件读取字符串 |
fputs()把字符串输出到指定文件 |
getw()从指定文件读取一个字(int型) |
putw()把一个字输出到指定文件 |
fread()从指定文件中读取数据项 |
fwrite()把数据项写到指定文件中 |
fscanf()从指定文件按格式输入数据 |
fprintf()按指定格式将数据写到指定文件中 |