
fopen(char *filename,char *type)
其中*filename是要打开文件的文件名指针,一般用双引号括起来的文件名表示,也可使用双反斜杠隔开的路径名。而*type参数表示了对打开文件的 *** 作方式。其可采用的 *** 作方式如下:
方式 含义
r 打开,只读
w 打开,文件指针指到头,只写
a 打开,指向文件尾,在已存在文件中追加
rb 打开一个二进制文件,只读
wb 打开一个二进制文件,只写
ab 打开一个二进制文件,进行追加
r+ 以读/写方式打开一个已存在的文件
w+ 以读/写方式建立一个新的文本文件
a+ 以读/写方式打开一个文件文件进行追加
rb+ 以读/写方式打开一个二进制文件
wb+ 以读/写方式建立一个新的二进制文件
ab+ 以读/写方式打开一个二进制文件进行追加
当用fopen(0成功的打开一个文件时,该函数将返回一个FILE指针,如果文件打开失败,将返回一个NULL指针。
2.关闭文件函数fclose()
int fclose(FILE *stream)
3.文件的读写
(1).读写文件中字符的函数(一次只读写文件中的一个字符):
int fgetc(FILE *stream)
int fgetchar(void)
int fputc(int ch,FILE *stream)
int fputchar(int ch)
int getc(FILE *stream)
int putc(int ch,FILE *stream)
(2).读写文件中字符串的函数
char *fgets(char *string,int n,FILE *stream)
char *gets(char *s)
int fprintf(FILE *stream,char *format,variable-list)
int fputs(char *string,FILE *stream)
int fscanf(FILE *stream,char *format,variable-list)
有以下几种常用方法读写TXT文件:一、
CStdioFile
二、
FILE* f = fopen("file name", "mode")
char buff[size]
fread(buff, size, 1, f)
fclose(f)
三、
//用MFC读文件
CFile file("yourfile.txt",CFile::modeRead)
char *pBuf
int iLen=file.GetLength()
pBuf =new char[iLen 1]
file.Read(pBuf,iLen)
pBuf[iLen]=0
file.Close()
MessageBox(pBuf)
四、
//用C SDK 读文件
HANDLE hFile
hFile=CreateFile("2.txt",GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL)
char ch[100]
DWORD dwReads
ReadFile(hFile,ch,100,&dwReads,NULL)
CloseHandle(hFile)
ch[dwReads]=0
MessageBox(ch)*
五、
用C读文件
FILE *pFile=fopen("1.txt","rb")
char *pBuf
fseek(pFile,0,SEEK_END)//移动文件指针到文件末尾
int len=ftell(pFile)//获取当前文件指针在文件中的偏移量,Gets the current position of a file pointer.offset
pBuf=new char[len]
rewind(pFile)//将指针移动到文件头,Repositions the file pointer to the beginning of a file
//也可以用fseek(pFile,0,SEEK_SET)
fread(pBuf,1,len,pFile)
pBuf[len]=0
fclose(pFile)
MessageBox(pBuf)
1.fopen的函数原型:FILE * fopen(const char * path,const char * mode)
fopen函数的第一个参数是文件路径,第二个参数是打开方式,有以下几种方式:
r 以只读方式打开文件,该文件必须存在。
r+ 以可读写方式打开文件,该文件必须存在。
rb+ 读写打开一个二进制文件,允许读数据。
rw+ 读写打开一个文本文件,允许读和写。
w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)
a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 (原来的EOF符不保留)
wb 只写打开或新建一个二进制文件;只允许写数据。
wb+ 读写打开或建立一个二进制文件,允许读和写。
wt+ 读写打开或着建立一个文本文件;允许读写。
at+ 读写打开一个文本文件,允许读或在文本末追加数据。
ab+ 读写打开一个二进制文件,允许读或在文件末追加数据。
上述的形态字符串都可以再加一个b字符,如rb、w+b或ab+等组合,加入b 字符用来告诉函数库打开的文件为二进制文件,而非纯文字文件。
返回值:文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno中。
2.例程:
#include<stdio.h>#define F_PATH "d:\\myfile\\file.txt"
char c
int main(){
FILE*fp=NULL//需要注意
fp=fopen(F_PATH,"r")
if(NULL==fp) return -1//要返回错误代码
while(fscanf(fp,"%c",&c)!=EOF) printf("%c",c) //从文本中读入并在控制台打印出来
fclose(fp)
fp=NULL//需要指向空,否则会指向原打开文件地址
return 0
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)