2-2 库函数-文件访问
1.创建和打开文件
FILE *fopen(const char *filename,const char *mode)
filename:文件名
mode:打开模式(字符串)
2. 常见打开模式
r,rb:只读方式打开
w,wb:只写方式打开,如果文件不存在,则创建文件
a,ab:追加方式打开,如果文件不存在,则创建文件
r+,rb+,r+b:读写方式打开
w+,wb+,w+b:读写方式打开,如果文件不存在,则创建文件
a+,ab+,a+b:读和追加方式打开,如果文件不存在,则创建文件
3,读写字符串
size_z fread(void *ptr,size_z size,size_z n,FILE *stream)
size_z fwrite(void *ptr,size_z size,size_z n,FILE *stream)
4.读写字符
int fgetc(FILE *stream)
从指定文件中读一个字符,为返回值。到达文件尾或结束的时候返回EOF
int fputc(char c,FILE *stream)
函数把一个字符写到一个输出的文件流中,返回写入的值,如果失败返回EOF
5. 格式化读
int fscanf(FILE *stream,char *format[,argument..........])
从一个流中格式化输入
如:
FILE *fp;
int i;
fscanf(fp,"%d",i);
6.格式化写
int fprint(FILE *stream,char *format[,argument..........])
格式化输出到一个流中
如:
FILE *stream;
char s[]="this is a string";
char c='\n';
stream=fopen("s3","w");
fprintf(stream,"%s%c",s,c);
fprintf(stream,"hah\nasd");
fclose(stream);
7.fputc fgutc实例
#include <stdio.h>
main()
{
FILE *fp;
char ch;
if((fp=fopen("s1","rt"))==NULL)
{
printf("存在错误\n");
//getch();
exit(1);
}
ch=fgetc(fp);
while(ch!=EOF)
{
putchar(ch); //输出到屏幕
ch=fgetc(fp);
}
fclose(fp);
}
#include <stdio.h>
main()
{
FILE *in,*out;
char ch;
if((in=fopen("s2","rt"))==NULL)
{
printf("存在错误\n");
//getch();
exit(1);
}
if((out=fopen("s3","a+"))==NULL)
{
printf("存在错误\n");
//getch();
exit(1);
}
ch=fgetc(in);
while(ch!=EOF)
{
putchar(ch); ///////////////
fputc(ch,out);
ch=fgetc(in);
}
fclose(in);
fclose(out);
}