fopen

#include <stdio.h>

struct _iobuf {
        char *_ptr;   // 下一个要被读取的字符地址
        int   _cnt;    // 剩余的字符,如果是输入缓冲区,那就表示缓冲区中还有多少个字符未被读取
        char *_base;  // 缓冲区基地址
        int   _flag;  // 读写状态标志位
        int   _file;  // 文件描述符
        int   _charbuf;
        int   _bufsiz; // 缓冲区大小
        char *_tmpfname;
        };
typedef struct _iobuf FILE;
  • 三种刷新缓冲区的操作

    • fclose
    • fflush(fp)
    • 写满

简单读写示例

#include <iostream>
#include <error.h>

int main()
{
    FILE *fp;
    char c,ret;

    fp=fopen("1.txt","r+");
    if(NULL == fp) 
    {   
        perror("fopen");
        goto error;
    }   
    /*  
    // 操作成功返回 该字符,操作失败(已经读到了文件文件末尾) 返回 “EOF”
    while((c = fgetc(fp)) != EOF){
        putchar(c);
    }
    */
    c='H';
    // 运行成功返回该字符,运行失败,返回 EOF(-1)                                                                          
    ret=fputc(c,fp);
    if(EOF != ret)
    {   
        perror("fputc");
        goto error;
    }   
    fclose(fp);
error:
    return 0;
}
上一篇:12.16C语言学习笔记


下一篇:c语言 13-2