C语言中对文件进行读写操作必须先将文件怎么办

如题所述

要先声明一个文件指针,然后利用fopen函数打开文件,该函数打开文件成功会返回一个指向该流的文件指针,然后通过文件指针对文件进行操作,最后在通过fclose函数来关闭流并释放文件指针。

fopen函数原型:FILE * fopen(const char * path,const char * mode);
第一个参数是路径,第二个参数是打开文件的方式,有以下几种:
r 以只读方式打开文件,该文件必须存在。
  r+ 以可读写方式打开文件,该文件必须存在。
  rb+ 读写打开一个二进制文件,允许读数据。
  rw+ 读写打开一个文本文件,允许读和写。
  w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
  w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
  a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)
  a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 (原来的EOF符不保留)
  wb 只写打开或新建一个二进制文件;只允许写数据。
  wb+ 读写打开或建立一个二进制文件,允许读和写。
  wt+ 读写打开或着建立一个文本文件;允许读写。
  at+ 读写打开一个文本文件,允许读或在文本末追加数据。
  ab+ 读写打开一个二进制文件,允许读或在文件末追加数据。
  上述的形态字符串都可以再加一个b字符,如rb、w+b或ab+等组合,加入b 字符用来告诉函数库打开的文件为二进制文件,而非纯文字文件。

fclose函数用法:int fclose(FILE *stream);
参数为指向与关闭文件的文件指针。

例如:
#include <stdio.h>
  #include <stdlib.h> //为了使用exit()
  int main()
  {
    char 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;
  }
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-06-10
在对文件进行读写之前必须 先打开文件,可使用fopen或者open 函数。
如下:
FILE *fp;
fp=fopen("d:\\a.txt","r+");//打下D盘下的a.txt文件
然后你就可以进行读写了。本回答被提问者和网友采纳
第2个回答  2012-06-10
只要你在调用函数时,写出文件的绝对路径就可以