fopen()函数的使用

定义函数
         FILE * fopen(const char * path,const char * mode);
函数说明
         参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态。 
  mode有下列几种形态字符串: 
  r 打开只读文件,该文件必须存在。 
  r+ 打开可读写的文件,该文件必须存在。 
  rb+ 读写打开一个二进制文件,只允许读写数据。
  rt+ 读写打开一个文本文件,允许读和写。
  w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。 
  w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。 
  a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留) 
  a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 (原来的EOF符不保留)
  wb 只写打开或新建一个二进制文件;只允许写数据。
  wb+ 读写打开或建立一个二进制文件,允许读和写。
  wt+ 读写打开或着建立一个文本文件;允许读写。
  at+ 读写打开一个文本文件,允许读或在文本末追加数据。
  ab+ 读写打开一个二进制文件,允许读或在文件末追加数据。
  上述的形态字符串都可以再加一个b字符,如rb、w+b或ab+等组合,加入b 字符用来告诉函数库打开的文件为二进制文件,而非纯文字文件。不过在POSIX系统,包含Linux都会忽略该字符。由fopen()所建立的新文件会具有S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH(0666)权限,此文件权限也会参考umask 值。 
  有些C编译系统可能不完全提供所有这些功能,有的C版本不用"r+","w+","a+",而用"rw","wr","ar"等,读者注意所用系统的规定。
[编辑本段]返回值
  文件顺利打开后,指向该流的文件指针就会被返回。若果文件打开失败则返回NULL,并把错误代码存在errno 中。
[编辑本段]附加说明
  一般而言,开文件后会作一些文件读取或写入的动作,若开文件失败,接下来的读写动作也无法顺利进行,所以在fopen()后请作错误判断及处理。
[编辑本段]例程
  #include <stdio.h>
  #include <stdlib.h> //为了使用exit()
  int main()
  {
  int ch;
  FILE* fp;
  char fname[50]; //用于存放文件名
  printf("输入文件名:");
  scanf("%s",fname);
  fp=fopen(fname,"r"); //只供读取
  if(fp==NULL) //如果失败了
  {
  printf("错误!");
  exit(1); //中止程序
  }
  //getc()用于在打开文件中获取一个字符 
  while((ch=getc(fp))!=EOF)
  putchar(ch);
  fclose(fp); //关闭文件 
  return 0;
  } 
  注意!初学者往往会犯一个错误,即在输入文件名时不加后缀名,请注意加上!

参考资料:http://baike.baidu.com/view/656681.html?wtp=tt

时间: 2024-11-05 20:07:28

fopen()函数的使用的相关文章

fopen()函数

1.2 文件的输入输出函数 键盘.显示器.打印机.磁盘驱动器等逻辑设备, 其输入输出都能够通过文件管理的方法来完毕.而在编程时使用最多的要算是磁盘文件, 因此本节主要以磁盘文件为主, 具体介绍Turbo C2.0提供的文件操作函数, 当然这些对文件的操作函数也适合于非磁盘文件的情况. 另外, Turbo C2.0提供了两类关于文件的函数.一类称做标准文件函数也称缓冲型文件函数, 这是ANSI标准定义的函数; 还有一类叫非标准文件函数, 也称非缓冲型文件函数.这类函数最早公用于UNIX操作系统,

fopen()函数中参数mode的取值

FILE * fopen(const char * path,const char * mode); 参数mode字符串则代表着流形态. mode有下列几种形态字符串: r 打开只读文件,该文件必须存在. r+ 打开可读写的文件,该文件必须存在. rb+ 读写打开一个二进制文件,只允许读写数据. rt+ 读写打开一个文本文件,允许读和写. w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失.若文件不存在则建立该文件. w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会

php fopen函数返回false

使用yum安装的apache2.4.6   php 7.2.2  正确安装后使用fopen()函数打开文件时返回false 百度一下又三种原因 1.目录或者文件夹权限原因 (可以用   chmod -R 777 根目录      文件夹设置最高权限) 2.打开文件路径错误 3.打开方式错误(w,r,a)等 已确定不是上述错误 手动添加php错误报告 //error handler function function customError($errno, $errstr){ echo "<

C语言的fopen函数(文件操作/读写)

头文件:#include <stdio.h> fopen()是一个常用的函数,用来以指定的方式打开文件,其原型为:     FILE * fopen(const char * path, const char * mode); [参数]path为包含了路径的文件名,mode为文件打开方式. mode有以下几种方式: 打开方式 说明 r 以只读方式打开文件,该文件必须存在. r+ 以读/写方式打开文件,该文件必须存在. rb+ 以读/写方式打开一个二进制文件,只允许读/写数据. rt+ 以读/写

C函数篇(fopen函数)

函数原型:FILE * fopen(const char * path,const char * mode); 相关函数:open,fclose,fopen_s,_wfopen 返回值:文件顺利打开后,指向该流的文件指针就会被返回.如果文件打开失败则返回NULL,并把错误代码存在errno 中. 函数简介 函数原型:FILE * fopen(const char * path,const char * mode); 返回值:文件顺利打开后,指向该流的文件指针就会被返回.如果文件打开失败则返回NU

php读取外部txt文件内容并打印在页面|fopen()函数

<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <?php $f = fopen('101010100.json','r'); $ln= 0; while (! feof ($f)) { $line= fgets ($f); ++$ln; if ($li

CodeBlocks 中fopen函数不支持命令 “r”

//codeblocks #include<stdio.h> #include<stdlib.h> void main(void) { FILE *fp=NULL; if((fp=fopen("shuju.txt","r"))==NULL) { printf("Can not open the file! \n"); exit(0); } fclose(fp); return(0); } 运行这段程序,总是打印出“Can

在iOS系统中使用fopen函数

这些天在应用中用到openssl编解码的时候遇到用fopen打开文件拿不到FILE的情况,造成crash,最后得到解决,以下是记录: 因为应用底层有部分代码是C编写的,在这里要打开一个文件来读取数据,一开始在Objective-C中创建文件的时候是用的NSURL,传到C代码中的时候使用[[url absoluteString] UTF8String],在fopen的时候拿到的fd是-1,没有打开文件. 追踪代码的时候发现,NSURL指向的文件路径是 file:///xxxx 这样的格式,但如果是

C语言中文件fopen函数w+和w,a和a+的区别

w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失.若文件不存在则建立该文件. w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失.若文件不存在则建立该文件. a 以附加的方式打开只写文件.若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留.(EOF符保留) a+ 以附加方式打开可读写的文件.若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留. (原来的EOF符不保留)

fopen()、fwrite()、fread()函数使用说明与示例

fopen()函数: 1.作用: 在C语言中fopen()函数用于打开指定路径的文件,获取指向该文件的指针. 2.函数原型: [cpp] view plain copy FILE * fopen(const char * path,const char * mode); -- path: 文件路径,如:"F:\Visual Stdio 2012\test.txt" -- mode: 文件打开方式,例如: "r" 以只读方式打开文件,该文件必须存在. "w&