zoukankan      html  css  js  c++  java
  • C语言每日一题之No.12

        文件操作知识:如何将一个文件的内容读取到另一个文件里?

     fread函数和fwrite函数

     

    1.函数功能

      用来读写一个数据块。

    2.一般调用形式

      fread(buffer,count,size,fp);

      fwrite(buffer,count,size,,fp);

    3.说明

      (1)buffer:是一个指针,对fread来说,它是读入数据的存放地址。对fwrite来说,是要输出数据的地址。

      (2)size:要读写的字节数;

      (3)count:要进行读写多少个size字节的数据项;

      (4)fp:文件型指针。

     注意: 1 )完成次写操(fwrite())作后必须关闭流(fclose());

               2 )完成一次读操作(fread())后,如果没有关闭流(fclose()),则指针(FILE * fp)自动向后移动前一次读写的长度,不关闭流继续下一次读操作则接着上次的输出继续输出;

               3 ) fprintf() : 按格式输入到流,其原型是int fprintf(FILE *stream, const char *format[, argument, ...]);其用法和printf()相同,不过不是写到控制台,而是写到流罢了。注意的是返回值为此次操作写入到文件的字节数。如int c = fprintf(fp, "%s %s %d %f", str1,str2, a, b) ;str1:10字节;str2: 10字节;a:2字节;b:8字节,c为33,因为写入时不同的数据间自动加入一个空格。

            以下FileRead.txt文件里文本内容“Hello to my programmer world!”。程序将FileRead.txt里的内容读到FileWrite.txt里。如果FileWrite.txt文件不存在则报错,如果存在就确实为“Hello to my programmer world!”。

           

     1 #include <stdio.h>
     2 #include <string.h>
     3 
     4 
     5 int read_to_write()
     6 {
     7     FILE* fpr;
     8     FILE* fpw;
     9     int i= 0;
    10     char buff[100]={0};
    11 
    12     if((fpr=fopen("e:\FileRead.txt","r"))==0)
    13     {
    14        printf("open failed!
    ");
    15        return 0;  
    16     
    17     }
    18 
    19     fpw = fopen("e:\FileWrite.txt","w");
    20     for(i=0;i<1024;i++)
    21        fread(&buff[i],1,1,fpr);
    22     for(i=0;i<1024;i++)
    23        fwrite(&buff[i],1,1,fpw);
    24     fclose(fpr);
    25     fclose(fpw);
    26 
    27     return 0;
    28 
    29 }
    30 
    31 int main()
    32 {
    33    read_to_write();
    34    return 0;
    35 
    36 
    37 }

     运行结果:

       要么是open file failed!

       要么FileWrite.txt文件里的内容为“Hello to my programmer world!”

     疑惑:fopen里的“W”不是以新建方式打开文件吗?为什么还会报错?

  • 相关阅读:
    python学习-类属性和实例属性
    python学习-名字管理
    phalcon安装-遇坑php-config is not installed 解决方法
    利用scp 远程上传下载文件/文件夹
    linux tar打包
    ELK logstash 启动慢的解决方法
    shell脚本学习
    ELK日志系统:Filebeat使用及Kibana如何设置登录认证(转)
    elastic5.4安装错误解决
    CentOS 6、7 安装 Golang
  • 原文地址:https://www.cnblogs.com/TTTTT/p/3781101.html
Copyright © 2011-2022 走看看