前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C语言文件的打开、关闭、读写

C语言文件的打开、关闭、读写

作者头像
岳泽以
发布2022-10-26 16:13:09
1.7K0
发布2022-10-26 16:13:09
举报
文章被收录于专栏:岳泽以博客

打开文件

fopen(文件名,文件的打开方式)

  • r:对文本文件只读方式(字符ascii)
  • w:对文本文件只写方式(字符ascii)
  • a:对文本文件追加方式(字符ascii)
  • r+,w+,a+对文本文件可读可写方式
  • rb:对二进制文件只读方式
  • wb:对二进制文件只写方式
  • ab:对二进制文件追加方式
  • rb+,wb+,ab+对二进制文件可读可写方式
代码语言:javascript
复制
#include<stdio.h>
int main(){
    FILE *p;
    //p=fopen("abc.dat","w");
    p=fopen("D:\\cccc\\abc.dat","w");
    if(p==NULL){
        printf("error!");
    }else{
        printf("OK"); 
    }
    return 0;
}

关闭文件

一个打开的文件,需要fclose(指向文件的指针);进行关闭,如果不对文件进行关闭,有可能丢失文件的数据。

关闭文件就是将文件缓冲区当中的数据输出到磁盘或输入到内存。

代码语言:javascript
复制
#include<stdio.h>
int main(){
    FILE *p;
    //p=fopen("abc.dat","w");
    p=fopen("D:\\cccc\\abc.dat","w");
    if(p==NULL){
        printf("error!");
    }else{
        printf("OK"); 
    }
    //......
    fclose(p); 
    return 0;
}

按字符读写文件

程序---->磁盘

ch=getchar() putchar(ch) gets() puts()

fgets(p):从指针p指向的文件读入一个字符。

fputc(ch,p):把字符ch写到文件指针p所指向的文件中。

例:用fputc函数从键盘逐个输入数据,然后写到磁盘中。

代码语言:javascript
复制
#include<stdio.h>
#include<stdlib.h>
int main(){
    FILE *p;
    p=fopen("abc.dat","w");
    //p=fopen("D:\\cccc\\abc.dat","w");
    if(p==NULL){
        printf("error!");exit(0);
    }
    printf("请输入字符,以#结束");
    char ch=getchar();
    while(ch!='#'){
        fputc(ch,p);
        putchar(ch);
        ch=getchar();
    }
    fclose(p); 
    return 0;
}

按照字符读文件

例:读出abc.dat中的文件内容。

代码语言:javascript
复制
#include<stdio.h>
#include<stdlib.h>
#define EOF -1;
int main(){
    FILE *f;
    f=fopen("abc.dat","r");
    if(f==NULL){
        printf("error!");
        exit(0);
    }
    char ch=fgetc(f);
    while(!feof(f)){//EOF=-1
    putchar(ch);
    ch=fgetc(f);
    }
    fclose(f); 
    return 0;
}

向文件读写一个字符串

  1. fgets(str,n,p):从指针指向的文件中读入一个长度为n的字符串,将此字符串存放到字符数组str中。
  2. fputs(str,p):把str所指的字符串写到文件指针p指向的文件中。

例:将3各字符串存储到文件中。

代码语言:javascript
复制
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(){
    FILE *p;
    p=fopen("abc.dat","r");
    if(p==NULL){
        printf("error!");
        exit(0);
    }
    char str[3][10];
    strcpy(str[0],"hello");
    strcpy(str[1],"china");
    strcpy(str[2],"world");
    for(int i=0;i<=2;i++){
        fputs(str[i],p);fputs("\n",p);
        printf("%s\n",str[i]); 
    }
    fclose(p); 
    return 0;
}
代码语言:javascript
复制
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(){
    FILE *p;
    char str[3][10];
    int i=0;
    p=fopen("abc.dat","r");
    if(p==NULL){
        printf("error!");
        exit(0);
    }
    while(fgets(str[i],10,p)!=NULL){
        printf("%s",str[i]);
        i++; 
    }
    fclose(p); 
    return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021 年 04 月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 打开文件
  • 关闭文件
  • 按字符读写文件
  • 按照字符读文件
  • 向文件读写一个字符串
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档