初学c/c++——提及文件操作

来源:互联网 发布:mac重置管理员账户 编辑:程序博客网 时间:2024/05/22 12:13

文件操作一般的四个操作,fopen,fclose,fwrite,fread,这四个什么意思呢?
说、学、逗。。。开玩笑,打开,关闭,写入,读出。

1)fopen与fclose

格式:
  FILE *fopen ( const char* filename , const chat* mode);
  ……  
  fclose(fopen);

解析格式:
FILE 不用在意其具体类型,只需要知道这是个指针就可以了,
filename 要是文件的全路径,
mode 有三种形式:
  “wb” write binary 写入数据,每次打开文件后,清空原有内容,不管你有没有写入新数据
  “ab” append 追加,打开后不清空,新内容追加在末尾
  “rb” read 读,读

实例:
  const char* fliename=”C:/test.txt”;
  FILE* fp=fopen(filename , “wb”);
  if(fp==NULL)
  {
    printf(“failed \n”);
    return -1;
  }
  fclose(fp);

2)fwrite

格式:
  size_t fwrite(const void* buf,size_t size, size_t count, FILE* stream);

解析格式:
buf 写入的数据
size 传1就可以了,别管
count 字节数
stream fopen的返回值

实例:
  char* buf[]=”hello”;
  fwrite( buf , 1 , 5或sizeof(buf) , fp );

3)wread

格式:
  size_t fread (void* buf ,size_t size , size_t nelem , FILE* stream);

解析格式:
读和写相似,
buf 存储到目标的内存地址
size 1
nelem 一次最多几个字节
返回值为字节个数

实例:
顺序读取:文件大,无法一次读完
  char buf[128];
  while(!feof(fp)) //检测文件是否到末尾,eof == end of file
  {
    int n = fread( buf , 1 , 4 , fp);
    if ( n > 0 )
    {
      printf(” %d bytes \n ” , n );
    }
  }

4.其他

多说一个按行解析的例子
用fgets,”rb” 下,读到”\n” 停止读取
  char buf[512];
  while(!feof(fp))
  {
    char* line = fgets(buf, 512 , fp);
    if(line)
    {
      printf(“got: %s ” , line );
    }
  }
解析情况很复杂,要自己多懂脑筋。
文件操作,是一个难点,当然了,多练习是肯定的,
我在这也只是提及文件操作这个概念,
没事多练,多看看大神的代码吧。。。

0 0
原创粉丝点击