C语言 文件IO的使用

简单介绍C语言文件操作函数的用法(可以直接使用):

  • fopen
  • fclose
  • fprintf
  • fscanf
  • fputc
  • fgetc
  • fread
  • fwrite

头文件

#include<stdio.h>

函数使用

  • fopen

函数原型: FILE *fopen( const char *filename, const char *mode );

    FILE *fp; //创建一个文件指针

    fp = fopen("test.c", "w");
test.c为文件名filename,w表示以写(write)的方式打开

打开方式:
    r: 以读的方式打开,文件要是不存在,则打开失败
    w: 打开一个空文件以进行写入。如果给定的文件存在,其内容将被销毁。没有文件时自动创建一个空文件
    a: 以追加的方式打开在文件的末尾(附加)打开,在将新数据写入文件之前不删除EOF标记;如果文件不存在,首先创建文件。
    r+: 以读和写的方式打开一个文件。该文件必须存在。
    w+: 以读和写的方式打开一个空文件。如果给定的文件存在,其内容将被销毁。
    a+: 以读和追加的方式打开一个文件;附加操作包括在将新数据写入文件之前删除EOF标记,在写入完成后恢复EOF标记;如果文件不存在,首先创建文件。


  • fclose

函数原型: int fclose( FILE *stream );

fclose(fp);
有返回值,如果流成功关闭,则fclose返回0,如果失败则返回EOF表示错误


  • fprintf

函数原型: int fprintf( FILE *stream, const char *format [, argument ]...);

    /*read the various data back from the file*/
    fp = fopen("test.txt", "w");
    fprintf(fp, "%s %ld %f%c", "a-string",65000, 3.14159, 'x');
    fclose(fp);


  • fscanf

函数原型: int fscanf( FILE *stream, const char *format [, argument ]... );

    /* Read data back from file: */
    char s[10];
    int i;
    float f;
    char c;
    fp = fopen("test.txt", "r");
    fscanf(fp, "%s", s);
    fscanf(fp, "%ld", &i);
    fscanf(fp, "%f", &f);
    fscanf(fp, "%c", &c);
    printf("%s,%ld,%f,%c\n", s, i, f, c);
    fclose(fp);
  • fputc

函数原型: int fputc( int c, FILE *stream );

    /*to send a character array to pf.*/
    fp = fopen("test.txt", "a");
    fputc('\n', fp);
    fputc('s', fp);
    fputc('s', fp);
    fputc('r', fp);
    fclose(fp);


  • fgetc

函数原型: int fgetc( FILE *stream );

    /*uses getc to read*/
    fp = fopen("test.txt", "r");
    char ch;
    ch = fgetc(fp);
    printf("%c\n",ch);
    ch = fgetc(fp);
    printf("%c\n", ch);
    ch = fgetc(fp);
    printf("%c\n", ch);
    fclose(fp);

从文件指针pf中读一个数据给ch,使用完 fgetc 后文件指针 fp 自动后移

  • fread

函数原型: size_t fread( void *buffer, size_t size, size_t count, FILE *stream );

    /* Attempt to read in 10 characters */
    fp = fopen("test.txt", "r");
    int numread;
    char list2[30];
    numread = fread(list2, sizeof(char), 10, fp);
    printf("Number of items read = %d\n", numread);
    printf("Contents of buffer = %.10s\n", list2);


  • fwrite

函数原型: size_t fwrite( const void *buffer, size_t size, size_t count, FILE *stream );

    /* Write 25 characters to stream */
    fp = fopen("test.txt", "w");
    int numwritten;
    char list[30] = "abcdefghijklmnopqrstuvwxyz";
    numwritten = fwrite(list, sizeof(char), 25, fp);
    printf("Wrote %d items\n", numwritten);
    fclose(fp);
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值