一、文件的读写函数介绍
读字符函数
FILE *fp; ch = fgetc(fp);
函数功能: 从fp所指向的文件(该文件必须是以读或读写方式打开的)中读取一 个字符。 若输入操作成功,函数返回读入的字符; 若文件结束或输入操作失败,则返回EOF。
从键盘输入字符,逐个存放到d盘test.txt文件中,直到输入#为止, 最后在屏幕上输出该文件中的内容
接下来我们看一道例题
从键盘输入字符,逐个存放到d盘test.txt文件中,直到输入#为止, 最后在屏幕上输出该文件中的内容。
//FileName: chap8_1.c
#include <stdio.h>
#include<stdlib.h>
int main( )
{
FILE *in, *out;
char ch;
in=fopen("d:\\test.txt","w");
printf("Please intput string:");
ch=getchar();
while(ch!='#')
{
fputc(ch, in);
ch=getchar();
}
fclose(in);
out=fopen("d:\\test.txt","r");
printf(“The output is:”);
while((ch=fgetc(out))!=EOF)
putchar(ch);
fclose(out);
return 0;
}
程序运行结果: Please intput string:abcdefgh123#↙ The output is:abcdefgh123
读字符串函数
FILE *fp; fgets( str, n, fp );
函数功能: 从fp所指向的文件中,读取n-1个字符后,加上字符串结束标志‘\0’组成一个字符串,存入字符数组中。 若输入操作成功,返回字符数组的首地址; 若文件结束或输入操作失败,则返回NULL。
格式化读函数
FILE *fp;
fscanf( fp, 格式控制串, 地址表);
函数功能: 按格式控制串所描述的格式,从fp所指向的文件中读取数据,送到指 定的内存地址单元中。 若输入操作成功,返回实际读出的数据项个数,不包括数据分隔符。 若没有读数据项,则返回0。若文件结束或调用失败,则返回EOF。
格式化写函数
FILE *fp;
fprintf( fp, 格式控制串,输出项参数表 );
函数功能: 将输出项按指定格式写入fp所指向的文件中。 若输出操作成功,返回写入的字节数; 若输出操作失败,则返回EOF。
数据块读函数
fread( p, size, n, fp );
函数功能: 从fp所指向的文件中,读取n个数据项,存放到p所指向的存储区域。 若输入操作成功,返回实际读出的数据项个数。 若文件结束或调用失败,则返回0。
数据块写函rewind( fp );数
fwrite( p, size, n, fp);
函数功能: 将p指向的存储区中n个数据项写入fp所指向的文件。 若输出操作成功,返回写入的数据项数; 若输出操作失败,则返回0。
二、文件的定位
rewind( fp );
函数功能:
将文件读写指针移到文件开始位置,并将文件结束指示器和错误指示 器清0。
该函数无返回值。
函数fseek( )
fseek( fp, offset, whence );
函数功能: 将文件读写指针从whence标识的位置移动offset个字节,并将文件结 束指示器清0。 若移动成功,返回0;若移动失败,则返回非0值。