美文网首页
c语言文件操作

c语言文件操作

作者: ahqrt | 来源:发表于2018-10-21 20:56 被阅读0次
    在linux中我们知道一切皆文件,那么在c语言中文件操作有哪些呢,我们来看一下。

    1.新建文件

    定义文件类型指针变量的一般形式是:

    FILE *指针变量
    例如:FILE *fp1 *fp2
    

    在进行文件操作以前,我们需要先创建一个文件,这时候需要调用到fopen()函数,fopen()的调用格式是: fopen(文件名, 文件的使用方式)
    例如:

    FILE *fp
    fp = fopen("file_a", "r")
    

    在c语言中常见的文件使用方式有:
    "r" : 以只读方式打开,如果文件不存在,则报错
    "rb" : 以二进制只读方式打开一个文件
    "w" : 以写方式打开一个文件,如果文件不存在,则新建一个文件,如果文件存在,则会清空文件内容,重新写入
    "wb" : 以二进制写方式打开一个文件
    "a" : 以追加模式打开一个文件,新内容写入文件尾,不会清空原文件

    当文件新建以及操作结束以后,要关闭文件,这时候要调用fclose()函数。

    2 输入和输出

    在成功的打开文件以后,接下来的事情就是输入和输出操作,最简单的就是调用getc()和putc()函数来实现字符的输入和输出

    2.1字符的输入和输出
    putc()的调用形式是:putc(ch, fp)

    这里的ch是待输入的字符,可以是一个常量,也可以是一个变量, fp是文件指针,putc的功能是将ch写入到文件fp中去。

    getc的调用形式是 ch = getc(pf)

    这里的pf是文件指针,函数的功能是从pf指定的文件中读入一个字符串,并将它作为返回值赋值给ch。

    判断文件是否结束feof(),文件结束返回1,没有结束返回0
    2.2 字符串的输入和输出
    fscanf()函数是从文件中按格式输入,调用形式是fscnf(文件指针, 格式控制符, 输入项表)
    例如: fscnf(fp, "%d%d", &a, &b)
    
    fprintf()函数将内存中的数据转化成相应的字符,然后写入文件中,调用形式是fprintf(文件指针, 格式控制符, 输出项表)
    例如: fprintf(fp, "%d%d", x, y)
    
    2.3 fgets()函数和fputs() 函数
    fgets()函数是从文件中读取字符串,调用格式是fgets(str, n, fp), 其中str是存放字符串的起始位置,n 是一个int型的变量,函数的功能是从fp制定的文件中读入n-1个字符串放入str为起始地址的空间中。
    fputs()函数是把字符串输出到文件中,调用格式是fputs(str, fp),此处的str可以是字符串常量,指向字符串的指针或者是存放字符串的字符数组等。
    2.4 fread和fwrite函数

    fread()和fwrite()函数是分别用来读写二进制文件的,他们的调用格式是

    fread(buffer,size,count,fp)
    fwrite(buffer,size,count,fp)
    

    其中buffer是数据块的指针,size是指每个数据块的字节数,count用来指定每次读写一次,输入或者输出数据块的个数
    例如:

    struct  st
     {    char nums[8];
          float mk[5];
          pers[30];
    }
    for (i = 0; i< 30; i++ )
      fwrite( &pers[i], sizeof( struct st ), 1, fp) //输出到fp中去
    i = 0;
    fread( &pers[i], sizeos( struct st ), 1, fp);
    while (! feof( fp))
    {   i++;
        fread( &pers[i], sizeos( struct st ), 1, fp); //将数据读入到pers数组中去
    }
    
    2.5 文件定位函数
    2.5.1 fseek()函数

    fseek()函数是用来移动文件位置指针到指定的位置上,接着读写操作,函数调用格式是fseek(pf, sffset,origin); pf是指文件指针,offset是以字节为单位的位移量,为长整形,origin是起始点

    B标识符 数字 代表的起始点
    SEEK_SET 0 文件开始
    SEEK_END 2 文件末尾
    SEEK_CUR 1 文件当前位置

    2.5.2 ftell()函数

    ftell()函数是用来获得当前位置指针的位置,调用格式是:

    long t;
    t = ftell(pf)
    

    相关文章

      网友评论

          本文标题:c语言文件操作

          本文链接:https://www.haomeiwen.com/subject/qfhizftx.html