文件I/O
(1) 打开文件
FILE *fopen(const char *filename,const char *mode);
“r”(只读),为输入一个文本文件
“w”(只写),为输出打开一个文本文件
“a”(追加),向文本文件末尾添加数据
“rb”(只读),为输入打开一个二进制文件
“wb”(只写),为输出打开一个二进制文件
“ab”(追加),向二进制文件末尾添加数据
“r+”(读写),为读写打开一个文本文件
“w+”((读写),为读写建立一个新的文本文件
“a+”(读写),为读写打开一个文本文件
“rb+”(读写),为读写打开一个二进制文件
“wb+”(读写),为读写建立一个新的二进制文件
“ab+”(读写),为读写打开一个二进制文件
实例:
FILE *fp;
fp=fopen(“file”,”mode”);
if(fp==NULL)
{
printf(“open failed/n”);
exit(1);
}
(2) 关闭文件
Int fclose(FILE *fp);
(3) 写字符
Int putc(int ch,FILE *fp);
Ch为被写入的字符。
(4) 读字符
Int getc(FILE *fp);
实例:
Do{
Ch=getc(fp);
}while(ch!=EOF);
(5) 使用feof()
判断读入二进制文件是否到达文件末尾。
Int feof(FILE *fp);
到达文件末尾时函数返回真值,否则返回0.
实例:
While(!feof(fp)) ch=getc(fp);
(6) 用fputs()和fgets()处理串
Int fputs(const char *str,FILE *fp);
Char *fgets(char *str,int length,FILE *fp);
(7) rewind()
函数重置文件的位置指示。
Void rewind(FILE *fp).就是将文件指针指向文件开始。
(8) ferror()
int ferror(FILE *fp);
在最近一次文件操作中出错时,函数返回真值;否则,返回假值。
(9) 删除文件
Int remove(const char *filename);
(10) 对流清仓
Int fflush(FILE *fp);
对输出流清仓,把输出流上的内容清入文件。函数将缓冲的全部数据写到fp指定的文件中。成功是函数返回0,否则返回EOF
(11) 使用fread()和fwite()
Size_t fread(void *buf,size_t num_bytes,size_t count,FILE *fp);
Size_t fwrite(const void *buf,size_t num_bytes,size_t count,FILE *fp);
(12) 设置文件指针位置
Int fseek(FILE *fp,long int numbytes,int origin);
Numbytes是从原点origin到新位置的字节数;
Origin取stdio.h中定义的宏:
文件开始:SEEK_SET
当前位置:SEEK_CUR
文件末尾:SEEK_END
(13) fprintf()与fscanf()
实例:
Fscanf(stdin,”%s”,s); //read from keyboard
Fprintf(fp,”%s”,s); //write to file
Fscanf(fp,”%s”,s); //read from file
Fprintf(stdout,”%s”,s) //print on screen