• C语言实验十五 文件


    一、实验目的

    (一)掌握文件以及缓冲文件系统、文件指针的概念;

    (二)学会使用文件打开、关闭、读、写等文件操作函数;

    (三)学会用缓冲文件系统对文件进行简单的操作。

    二、预习要求

    文件类型指针

    文件的打开与关闭 文件的读写操作函数

    三、实验内容

    将一个磁盘文件中的信息复制到另一个磁盘文件中。

    1. #include
    2. #include
    3. void main( )
    4. {
    5. FILE*in,*out ; // 定义文件指针
    6. char ch,infile[1 0],outfile[1 0];
    7. printf("Enter the infile name:\n");
    8. scanf("%s",infile);
    9. printf("Enter the outfile name:\n");
    10. scanf("%s",outfile);
    11. if((in=fopen(infile," r"))==NULL)
    12. { // 判断文件是否正确读操作
    13. printf("cannot open infile\n"); exit(0);
    14. }
    15. if((out=fopen(outfile,"w"))==NULL)
    16. { // 判断文件是否正确写操作
    17. printf("cannot open outfile\n"); exit(0);
    18. }
    19. //判文件是否结束,如果不结束,则读文件in 的内容写入到文件out 之中
    20. while(!feof(in)) fputc(fgetc(in),out);
    21. fclose(in); //关闭文件
    22. fclose(out);
    23. }

    运行情况如下:

    1. Enter the infile name:
    2. file1.c(输入原有磁盘文件名)
    3. Enter the outfile name:
    4. file2.c(输入新复制的磁盘文件名)

    程序运行结果是将 fule1. c 文件中的内容复制到 fule2. c 中去。可以用下面命令验证:

    1. c:\>type file1.c
    2. computer and c  (file1.c中的信息)
    3. c:\>type file2.c
    4. computer and c  (file2.c 中的信息)

    以上程序是按文本文件方式处理的。也可以用此程序来复制一个二进制文件,只需 将两个 fopen 函数中的“r” 和 “w”分别改为“rb” 和 “wb” 即可。

    分析以上各程序的算法(用框图表示),解释产生该结果现象的相关知识点及实现语句。

    阅读以下程序,回答后面的问题。

    1. #include
    2. void main(void)
    3. {
    4. short a=0x253f,b=0x7b7d; char ch;
    5. FILE *fp1,*fp2;
    6. fp1=fopen("c:\\abc1.bin","wb+");
    7. fp2=fopen("c:\\abc2.txt","w+");
    8. fwrite(&a,sizeof(short), 1 ,fp1);
    9. fwrite(&b,sizeof(short), 1 ,fp 1);
    10. fprintf(fp2,"%hx %hx",a,b); rewind(fp 1); rewind(fp2);
    11. while((ch = fgetc(fp1)) != EOF) putchar(ch);
    12. putchar('\n');
    13. while((ch = fgetc(fp2)) != EOF) putchar(ch);
    14. putchar('\n');
    15. fclose(fp 1);
    16. fclose(fp2);
    17. }

    (1)请思考程序的输出结果, 然后通过上机运行来加以验证。

    (2)将两处 sizeof(short)均改为 sizeof(char)结果有什么不同,为什么?

    (3)将 fprintf(fp2,"%hx %hx",a,b) 改为 fprintf(fp2,"%d %d",a,b)结果有什么不同。

    四、实验注意事项

    注意文件打开的不同方式。

  • 相关阅读:
    Vue的生命周期
    Docker详解
    17 结构型模式-享元模式
    图片水印怎么加?图片加水印方法分享
    HarmonyOS学习——HarmonyOS习题
    MySQL系列之隔离级别
    Docker介绍及其常用命令
    内容分发网络 CDN
    小型框架集合
    elasticsearch7 实战应用
  • 原文地址:https://blog.csdn.net/qq_64314976/article/details/126147106