c语言fopen怎么用

Python021

c语言fopen怎么用,第1张

fopen一般与buf搭配使用,通过与fgets函数配合使用,将文件中的字符串读到buf中,这样达到读出文件内容的目的代码如下:

FILE tf=NULL//定义一个文件指着,用于判断fopen是否打开成功,并初始化为空;

char buf[1024]={0}//定义一个长度为1024的数组,用于存放文件的内容;

tf=fopen("c:\example.txt","r")//打开c盘指定文件,并以只读的形式打开,避免破坏原文件,将fopen的返回值放在指针tf中,若打开成功,则返回成功的指针,打开不成功则返回空;

if(tf != NULL)//判断是否成功,不等于NULL则表示成功

{

if(fgets(buf,1024,tf) != NULL)//将指向c盘文件的指针的内容赋给buf,长度为1024,并判断是否获取成功

{

printf("buf=%s\n",buf)//将成功获取的字符串显示在屏幕上;

}

}

fclose(tf)//将已打开的文件关闭;

扩展资料:

fopen的工作原理

FILE *fp

fp=fopen("filename.txt","w")

首先检测filename.txt是否存在,如果不存在则在磁盘 创建该文件,然后在内存开辟区域(应该是缓冲区)准备写该文件

调用fclose时,将内存中的内容写入到磁盘中去

测试(filename.txt不存在):

#include <stdio.h>

#include <stdlib.h>

int main()

{

FILE *fp1,*fp2

fp1=fopen("filename.txt","w")

if(fp1==NULL)

{

printf("fp1 open failed!/n")

}

else

{

printf("fp1 open success!/n")

}

fp2=fopen("filename.txt","r")

if(fp2==NULL)

{

printf("fp2 open failed!/n")

}

else

{

printf("fp2 open success!/n")

}

fclose(fp1)

fclose(fp2)

return 0

}

输出:

fp1 open success!

fp2 open success!

说明文件操作不是互斥的,而且以写方式打开文件,如果文件不存在,先在磁盘创建该文件

加入写入语句:

#include <stdio.h>

#include <stdlib.h>

int main()

{

FILE *fp1,*fp2

fp1=fopen("filename.txt","w")

if(fp1==NULL)

{

printf("fp1 open failed!/n")

}

else

{

printf("fp1 open success!/n")

fputs("abcdef",fp1)

}

fp2=fopen("filename.txt","w")

if(fp2==NULL)

{

printf("fp2 open failed!/n")

}

else

{

printf("fp2 open success!/n")

fputs("ABC/n",fp2)

}

fclose(fp1)

fclose(fp2)

return 0

}

打开filename.txt文件:

ABC

f

说明后关闭的,刷新了磁盘数据

参考资料来源:fopen-百度百科

C语言fopen函数用于打开文件。

函数原型:FILE

*

fopen(const

char

*

path,const

char

*

mode)

参数:

path

字符串类型,表示文件所在的路径,包括文件名

mode

打开文件的模式、

返回值:文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno

中。

mode:

r

以只读方式打开文件,该文件必须存在。

r+

以可读写方式打开文件,该文件必须存在。

rb+

读写打开一个二进制文件,允许读写数据,文件必须存在。

w

打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。

w+

打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。

a

以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)

a+

以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。

(原来的EOF符不保留)

wb

只写打开或新建一个二进制文件;只允许写数据。

wb+

读写打开或建立一个二进制文件,允许读和写。

ab+

读写打开一个二进制文件,允许读或在文件末追加数据。

实例:

#include<stdio.h>

#define

F_PATH

"d:\\myfile\\file.dat"

int

main(void)

{

FILE*fp=NULL//需要注意

fp=fopen(F_PATH,"r")

if(NULL==fp)

{

return

-1//要返回错误代码

}

fclose(fp)

fp=NULL//需要指向空,否则会指向原打开文件地址

return

0

}