C语言fopen函数了解

news/2024/11/15 6:46:24/

fopen()函数功能:open a file.

原型:FILE * fopen(const char * path,const char * mode);

需要#include<stdio.h>

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

一般打开文件会进行读取或写入操作,如果打开文件失败,也就无法顺利进行相应的读写操作,所以一般在调用fopen()之后要作错误判断及处理。

参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态。

mode有以下几种形态

"r" Opens for reading. If the file does not exist or cannot be found, thefopen call fails.

"w" Opens an empty file for writing. If the given file exists, its contents are destroyed.

"a" Opens for writing at the end of the file (appending) without removing the EOF marker before writing new data to the file; creates the file first if it doesn't exist.

"r+" Opens for both reading and writing. (The file must exist.) "w+" Opens an empty file for both reading and writing. If the given file exists, its contents are destroyed. "a+" Opens for reading and appending; the appending operation includes the removal of the EOF marker before new data is written to the file and the EOF marker is restored after writing is complete; creates the file first if it doesn't exist. "b"  Open in binary (untranslated) mode; translations involving carriage-return and linefeed characters are suppressed.  文本模式和二进制模式的区别: 1.在windows系统中,文本模式下,文件以"\r\n"代表换行。若以文本模式打开文件,并用fputs等函数写入换行符"\n"时,函数会自动在"\n"前面加上"\r"。即实际写入文件的是"\r\n" 。 2.在类Unix/Linux系统中文本模式下,文件以"\n"代表换行。所以Linux系统中在文本模式和二进制模式下并无区别。
DEMO示例1:
#include <stdio.h>
#include <stdlib.h>
#include <process.h>
int main()
{char ch;FILE *fp;char fname[50];   // store file nameprintf("input file name:");scanf("%s",fname);fp=fopen(fname,"r");if (fp==NULL){printf("error!\n");getchar();getchar();exit(1);}//getc()用于在打开文件中获取一个字符while((ch=getc(fp))!=EOF){putchar(ch);}printf("\n");fclose(fp);fp=NULL;system("pause");return 0;
}

DEMO2:
#include <stdio.h>
FILE *stream,*stream2;
int main(void)
{int numclosed;if ((stream=fopen("data.txt","r"))==NULL){printf("The file 'data.txt' was not opened\n");} else{printf("The file 'data.txt' was  opened\n");}if ((stream2=fopen("data2.txt","w+"))==NULL){printf("The file 'data2.txt' was not opened\n");} else{printf("The file 'data2.txt' was  opened\n");}if (stream){if (fclose(stream)){printf("The file data.txt was not opened\n");}}numclosed = _fcloseall();printf("Number of files close by _fcloseall %u\n",numclosed);system("pause");return 0;
}


文件操作时需要注意以下几点:   1、在定义文件指针时,要将文件指针指向空;如 FILE *fp = NULL;
  2、文件操作完成后,需要将文件关闭,一定要注意,否则会造成文件所占用内存泄露和在下次访问文件时出现问题。
  3、文件关闭后,需要将文件指针指向空,这样做会防止出现游离指针,而对整个工程造成不必要的麻烦;如:fp = NULL;


【FROM MSDN && 百科】




http://www.ppmy.cn/news/644268.html

相关文章

python format 格式化函数用法详解

本文转载整理自&#xff1a;python format 用法详解 前序&#xff1a;format是python2.6新增的一个格式化字符串的方法&#xff0c;相对于老版的%格式方法&#xff0c;它有很多优点&#xff1a; 不需要理会数据类型的问题&#xff0c;在%方法中%s只能替代字符串类型单个参数可…

C语言中fopen的详细用法

fopen是C语言中用于打开文件的函数&#xff0c;其原型为&#xff1a; FILE *fopen(const char *filename, const char *mode); 其中&#xff0c;filename是要打开的文件名&#xff0c;mode是打开文件的模式。fopen函数返回一个指向FILE类型的指针&#xff0c;该指针指向打开的…

C语言的fopen()函数

C语言的fopen()函数 fopen()的声明在头文件&#xff1a;#include <stdio.h> fopen()是一个常用的函数&#xff0c;用来以指定的方式打开文件&#xff0c;其原型为&#xff1a; ​ FILE * fopen(const char * path, const char * mode); 【参数】path为包含了路径的文件…

fopen()和fwrite()函数介绍及用法

一、fopen&#xff08;&#xff09; 头文件&#xff1a;#include <stdio.h> fopen&#xff08;&#xff09;作用:用来打开或创建一个普通文件&#xff08;文本文件/二进制文件&#xff09; 函数原型&#xff1a;FILE *fopen(const char *pathname, const …

format函数基本用法

1.format函数基本格式&#xff1a;<模块字符>.format(<逗号分隔的参数>) 例如&#xff1a; print("{},我想跟你说&#xff1a;{}“.format(a,b))2.字符串format()方法。例如&#xff1a; print("{} {}".format("hello","world&qu…

Format函数的用法总结

Format函数的用法总结如下&#xff1a; 函数声明 function Format(const Format: string; const Args: array of const): string; overload; 函数功能 事实上Format方法有两个种形式&#xff0c;另外一种是三个参数的&#xff0c;主要区别在于它是线程安全的&#xff0c;…

C语言中fopen函数用法详解

fopen函数用来打开一个文件&#xff0c;其调用的一般形式为&#xff1a;文件指针名fopen(文件名,使用文件方式); 其中&#xff0c;“文件指针名”必须是被说明为FILE 类型的指针变量&#xff1b;“文件名”被打开文件的文件名&#xff0c;是字符串常量或字符串数组&#xff0c…

Matlab之fopen、fprintf函数

fopen()是个将数据按指定格式读入到matlab中的函数。 fprintf()是个将数据按指定格式写入到文本文件中的函数。 matlab中fopen函数的常用调用格式 1&#xff09;fid fopen(‘filename’) 2&#xff09;fid fopen(‘filename’,’permission’) 其中fid是文件代号&#xf…