• C语言文件基本操作


    1.用文本方式储存‘1’,‘0’,‘2’存入文件,然后用二进制方式从文件开头读出一个short型数据,并验证结果是否正确

     1 #include<stdio.h>
     2 #include<string.h>
     3 #include<stdlib.h>
     4 int main()
     5 {
     6     short m;
     7     FILE *fp;
     8     if((fp=fopen("C:\vc\sample.txt","r"))==NULL)
     9     {
    10         printf("打开文件失败
    ");
    11         exit(1);
    12     }
    13     fputc('1',fp);
    14     fputc('2',fp);
    15     fputc('3',fp);
    16     fclose(fp);
    17     if((fp=fopen("C:\vc\sample.txt","r"))==NULL)
    18     {
    19         printf("打开文件失败
    ");
    20         exit(1);
    21     }
    22     fread(&m,2,1,fp);
    23     fclose(fp);
    24     printf("%d
    ",m);
    25     return 0;
    26 }

    也可以使用fwrite()将3个字符写入文件

     1 #include<stdio.h>
     2 #include<stdlib.h>
     3 int main()
     4 {
     5     short m;
     6     FILE *fp;
     7     if((fp=fopen("C:\vc\sample.txt","r+"))==NULL)
     8     {
     9         printf("打开文件失败
    ");
    10         exit(1);
    11     }
    12     char str[]= {'1','0','2'}; ///单字符形式的初始化
    13     fwrite(str,1,3,fp);
    14     rewind(fp);
    15     fread(&m,2,1,fp);
    16     fclose(fp);
    17     printf("%d
    ",m);
    18     return 0;
    19 }
    20 ///用“r+",“w+”的方式打开文件写完数据接着再读出来,不需要关闭文件再重新打开
     1 #include<stdio.h>
     2 #include<stdlib.h>
     3 int main()
     4 {
     5     short a;
     6     FILE *fp;
     7     if((fp=fopen("C:\vc\sample.txt","w+"))==NULL)
     8         exit(1);
     9     fprintf(fp,"%d
    ",10000);//长度为7字节,文本方式写入,内存中00110001 00110000
    10     rewind(fp);
    11     a=getw(fp);
    12     printf("%d
    ",a);//a的值为12337,short 取两个字节
    13     return 0;
    14 }
     1 #include<stdio.h>
     2 #include<stdlib.h>
     3 int main()
     4 {
     5     short a;
     6     FILE *fp;
     7     if((fp=fopen("C:\vc\sample.txt","w+"))==NULL)
     8         exit(1);
     9     putw(12337,fp);///将整数写入fp指向的文件,二进制写入内存中
    10     ///在内存中存为 00110001 00110000(由低位到高位)
    11     rewind(fp);
    12     fscanf(fp,"%d",&a);
    13     printf("%d
    ",a);
    14     return 0;
    15 }


    以下文件的输出结果是(123,45)

     1 #include<stdio.h>
     2 int main()
     3 {
     4     FILE *fp;
     5     int i,k,n;
     6     fp=fopen("C:\vc\c.dic","w+");
     7     for(i=1; i<6; i++)
     8     {
     9         fprintf(fp,"%d",i);///文本方式按format所对应的格式字符串中规定的格式,将输出列表中的每一项输出到fp所对应的文件中
    10         if(i%3==0)
    11             fprintf(fp,"
    ");
    12     }
    13     rewind(fp);///读写转换
    14     fscanf(fp,"%d%d",&k,&n);///读取整型实型数据时,若遇到空格,Tab或者换行键则会将他们当做分隔符读出来丢弃,然后继续读取后面的数据
    15     printf("%d,%d
    ",k,n);
    16     fclose(fp);
    17     return 0;
    18 }

    把a.dic文件中的内容复制到b.dic中

     1 #include<stdio.h>
     2 #include<stdlib.h>
     3 void main()
     4 {
     5     FILE *in,*out;
     6     char ch;
     7     if((in=fopen("C:\vc\a.dic","r"))==NULL)
     8     {
     9         printf("cannot open infile
    ");
    10         exit(0);
    11     }
    12     if((out=fopen("C:\vc\b.dic","w"))==NULL)
    13     {
    14         printf("cannot open infile
    ");
    15         exit(0);
    16     }///打开两个文件
    17     ch=fgetc(in);
    18     while(!feof(in))
    19     {
    20         fputc(ch,out);
    21         ch=fgetc(in);
    22     }
    23     fclose(in);
    24     fclose(out);
    25 }

    文本方式读取一段文字

     1 #include<stdio.h>
     2 #include<stdlib.h>
     3 int main()
     4 {
     5     FILE *fp;
     6     char ch;
     7     if((fp=fopen("C:\vc\a.dic","r"))==NULL)
     8     {
     9         printf("打开文件失败
    ");
    10         exit(1);
    11     }
    12     while(1)
    13     {
    14         ch=fgetc(fp);
    15         putchar(ch);
    16         if(ch==EOF)
    17             break;
    18     }
    19     fclose(fp);
    20     return 0;
    21 }

    改写之后的程序:

     1 #include<stdio.h>
     2 #include<stdlib.h>
     3 int main()
     4 {
     5     FILE *fp;
     6     char ch;
     7     if((fp=fopen("C:\vc\a.dic","r"))==NULL)
     8     {
     9         printf("打开文件失败
    ");
    10         exit(1);
    11     }
    12     ch=fgetc(fp);
    13     while(!feof(fp))
    14     {
    15         putchar(ch);
    16         ch=fgetc(fp);
    17     }
    18     fclose(fp);
    19     return 0;
    20 }

    计算该文件内容的字节数

     1 #include<stdio.h>///计算该文件内容的字节数
     2 int main()
     3 {
     4     FILE *fp;
     5     long int n;
     6     fp=fopen("C:\vc\b.dic","rb");
     7     fseek(fp,0,SEEK_END);///读写位置指针移动到了文件尾
     8     n=ftell(fp);
     9     fclose(fp);
    10     printf("%ld",n);
    11     return 0;
    12 }
  • 相关阅读:
    js的解析顺序 作用域 严格模式
    弹性盒模型----容器属性
    tomcat解压版的配置与使用
    将mysql中一行中的几个字段 转换成一列并从其他数据库中查对应的邮件信息
    电脑快捷键
    icell更改用户管理员
    kettle下载地址
    pycharm激活码
    leetcode-111. 二叉树最小深度 · Tree + 递归
    leetcode-102.层序遍历二叉树(正序)· BTree
  • 原文地址:https://www.cnblogs.com/wkfvawl/p/9164273.html
Copyright © 2020-2023  润新知