精华内容
下载资源
问答
  • C语言#fread

    2019-03-17 08:42:49
    fread 作用: 从文件流中读取数据 参数: 接收数据的内存地址,可以用指针或者& 要读取的每个数据项的字节数 要读取的项数(count) 要读取的文件指针(输入流) 返回值: 实际读取到的项数,正常...

    fread

    作用:

    从文件流中读取数据

    参数:
    1. 接收数据的内存地址,可以用指针或者&
    2. 要读取的每个数据项的字节数
    3. 要读取的项数(count)
    4. 要读取的文件指针(输入流)
    返回值:

    实际读取到的项数,正常情况小于或等于参数中的count
    若读到末尾,则返回0
    若有其他错误则返回其他数字

    内容基本来自百度百科,稍作整理
    
    展开全文
  • //头文件 #include <stdio.h> #include <... //打开原文件和待写入的文件 FILE *fp = fopen("C:\\Users\\yangwei1034\\Desktop\\Big_file.txt", "r"), *fp1 = fopen("C:\\Users\\yangwei1034\\D.
    //头文件
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    //定义文件拷贝函数
    int File_Copy()
    {
        //打开原文件和待写入的文件
        FILE *fp = fopen("C:\\Users\\yangwei1034\\Desktop\\Big_file.txt", "r"),
             *fp1 = fopen("C:\\Users\\yangwei1034\\Desktop\\Bigfile2.txt", "w");
        //判断文件是否打开成功
        if (!fp && !fp1)
        {
            //打开失败则输出错误原因
            perror("fopen error");
            //结束函数
            return -1;
        }
        //定义一个字符数组接受文件内容
        char arr[100] = {0};
        //使用while循环读文件和写文件
        while (1)
        {
            //接收返回值
            int ret = fread(arr, 1, 1, fp);
            //写读取的内容到新的文件中
            fwrite(arr, 1, 1, fp1);
            //判断是否到文件末尾 到文件末尾返回0
            if (ret == 0)
            {
                break;
            }
        }
        //关闭文件
        fclose(fp);
        fclose(fp1);
    }
    //主函数
    int main()
    {
        //调用文件拷贝函数
        File_Copy();
        return 0;
    }

     

    展开全文
  • 1、文件必须以二进制形式打开 FILE* pfileone=fopen("fileone","rb"); FILE* pfiletwo=fopen("filetwo","wb"); 2、读取文件,并存放数据 char *buf;...fread(buf,1,len,pfileone); 3、写文...

    1、文件必须以二进制形式打开

    FILE* pfileone=fopen("fileone","rb");

    FILE* pfiletwo=fopen("filetwo","wb");

    2、读取文件,并存放数据

    char *buf;

    int len=ftell(pfileone);

    buf=new char[len+1];

    fread(buf,1,len,pfileone);

    3、写文件

    fwrite(buf,1,len,pfiletwo);

    4、结尾

    delete buf;

    fclose(pfileone);

    fclose(pfilletwo);

    转载于:https://www.cnblogs.com/judes/p/5939079.html

    展开全文
  • c语言fread()和fwrite() fwrite 和 fread 是以记录为单位的 I/O 函数,fread 和 fwrite 函数一般用于二进制文件的输入输出。 #include <stdio.h> size_t fread(void *ptr, size_t size, size_t nmemb, ...

    c语言之fread()和fwrite()

    fwrite 和 fread 是以记录为单位的 I/O 函数,fread 和 fwrite 函数一般用于二进制文件的输入输出

    #include <stdio.h>
    size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
    size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
    

    返回值:读或写的记录数,成功时返回的记录数等于 nmemb,出错或读到文件末尾时返回的记录数小于 nmemb,也可能返回 0。

    参数stream为已打开的文件指针,参数ptr 指向欲存放读取进来的数据空间

    fread 和 fwrite 用于读写记录,这里的记录是指一串固定长度的字节,比如一个 int、一个结构体或者一个定长数组。参数 size 指出一条记录的长度,而** nmemb 指出要读或写多少条记录,这些记录在 ptr 所指的内存空间中连续存放,共占 size * nmemb 个字节**,fread 从文件 stream 中读出size * nmemb 个字节保存到 ptr 中,而 fwrite 把 ptr 中的 size * nmemb 个字节写到文件 stream 中。

    nmemb 是请求读或写的记录数,fread 和 fwrite 返回的记录数有可能小于 nmemb 指定的记录数。例如当前读写位置距文件末尾只有一条记录的长度,调用 fread 时指定 nmemb为2,则返回值为 1。如果当前读写位置已经在文件末尾了,或者读文件时出错了,则 fread 返回 0。如果写文件时出错了,则 fwrite 的返回值小于 nmemb 指定的值。下面的例子由两个程序组成,一个程序把结构体保存到文件中,另一个程序和从文件中读出结构体

    #include <stdio.h>  
    size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);  
    size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);  
    

    fwrite 及 fread 参考代码:
    writerec.c 文件代码

    /* -------------------writerec.c--------------- */

    #include <stdio.h>
    #include <stdlib.h>
    
    struct record {
        char name[10]; 
        int age;
    };  
    
    int main(void)
    {  
        struct record array[2] = {{"Ken", 24}, {"Knuth", 28}}; 
        FILE *fp = fopen("d:/test.txt", "w");
        if (fp == NULL) {  
            perror("Open file recfile"); 
            exit(1);  
        }  
        fwrite(array, sizeof(struct record), 2, fp);
        fclose(fp);
        return 0;
    }
    

    readrec.c 文件代码:

    /* -------------------readrec.c----------------- */

    #include <stdio.h>
    #include <stdlib.h>
    
    struct record {
        char name[10];
        int age;
    };  
    
    int main(void)  
    {  
        struct record array[2]; 
        FILE *fp = fopen("d:/test.txt", "r"); 
        if (fp == NULL) {  
            perror("Open file recfile");
            exit(1);  
        }  
        fread(array, sizeof(struct record), 2, fp);  
        printf("Name1: %s\tAge1: %d\n", array[0].name, array[0].age);  
        printf("Name2: %s\tAge2: %d\n", array[1].name, array[1].age);  
        fclose(fp);  
        return 0;  
    }
    

    $ gcc writerec.c -o writerec
    $ gcc readrec.c -o readrec
    发现生成的文件recfile不能直接打开。

    原因:我们把一个 struct record 结构体看作一条记录,由于结构体中有填充字节,每条记录占 16 字节,把两条记录写到文件中共占 32 字节。该程序生成的 recfile 文件是二进制文件而非文本文件,因为其中不仅保存着字符型数据,还保存着整型数据 24 和 28(在od命令的输出中以八进制显示为 030 和 034)。

    注意,直接在文件中读写结构体的程序是不可移植的,如果在一种平台上编译运行writebin.c程序,把生成的 recfile 文件拷到另一种平台并在该平台上编译运行 readbin.c 程序,则不能保证正确读出文件的内容,因为不同平台的大小端可能不同(因而对整型数据的存储方式不同),结构体的填充方式也可能不同(因而同一个结构体所占的字节数可能不同,age 成员在 name 成员之后的什么位置也可能不同)。 通过 readrec 程序读取文件 recfile 的内容,说明 writerec 程序的确记录成功写入 recfile 中。

    从 recfile 读出的内容如下:

    Name1: Ken    Age1: 24
    Name2: Knuth  Age2: 28
    

    fwrite 和 fread 的应用举例:
    1.将一个字符串写入文件:

    char *str="hello,I am a test program!";  
    fwrite(str,sizeof(char),strlen(str),fp)  
    

    2.将一个字符数组写入文件:

    char str[]={'a','b','c','d','e'};  
    fwrite(str,sizeof(char),sizeof(str),fp)  
    

    3.将一个整型数组写入文件:

    int a[]={12,33,23,24,12};
    

    先计算数组元素个数 nmemb,之后

    fwrite(a,sizeof(int),nmemb,fp)
    
    展开全文
  • 前两个可运行,第三个无法运行,且三段代码都在读取后如果使用printf输出到屏幕时就会乱码,比如文件里时20190001,输出是959524914。请各位大佬们帮忙看看,指出问题所在。 [img=...
  • [size=14px]本程序是从一个文件中读取数据,包含学生的编号,姓名,各门成绩,平均成绩,源文件中数已经是按升序排列,要求实现再插入一个学生的数据且也是升序排列并生成一个新文件[/size][size=12px][/size] ...
  • fd_read = fread(buff, sizeof(char), READ_NUM, fp_fopen); printf("ftell(fp_fopen) %ld \n", ftell(fp_fopen) ); } return 0; } 运行结果: root@ubuntu:/mnt/hgfs/Ubuntu12.04-share/test#...
  • 请问诸位达人,C语言中的select函数支持超时,那么用select来进行文件的I/O和fread/fwrite相比 速度上有什么区别吗?是否具备更多优势呢? p.s. 一些大的集群用的磁盘都是远程盘阵,都是通过交换机进行文件IO的。
  • 将成绩写入到 文本文件(score.txt)中 3.从score.txt中,以学生为单位依次读取 4.输出学生的姓名,和其三科的平均分 #include struct node { int num; //序号 char name[10]; //姓名 int chi; //语文 int math; //...
  • 文件"125.txt"中15名同学的姓名、成绩读入到结构体数组中,输出平均成绩和最高成绩的同学(要求保留2位小数)。要求定义如下结构体类型: struct student { char name[20]; float mathScore; }; 数据文件:程序...
  • 1.fput/fget按字符读取函数 : 可以读取文本文件和二进制文件,但是读单个字符效率比较低。...3.fread/fwrite按对象结构体读取:都可以读/所以推荐这种用法。 #include #define N 64 int main(int argc,char
  • 文件cj.txt读入一个班的学生成绩(人数不大于30),用结构体数组保存,并输出到屏幕。 内容包括:学号、姓名、语文、数学、外语。 每个学生输出一行,格式为“0001,niu12,99,99,99” cj.txt的内容 00001 niu34 99...
  • 最近在Linux下用C编写一个的蓝牙模块升级程序,用到 fread 函数...函数:fread(从文件流读取数据) 表头文件: #include 函数定义 size_t fread(void * ptr,size_t size,size_t count,FILE * stream); 函数说明: f
  • 1.将结构体中的内容保存到配置文件中,记录结构体中的内容,防止丢失。 2.结构体定义如下: #ifndef _TSK_CTL_H_ #define _TSK_CTL_H_ #define LENGTH 16 #define USER_NAME_LEN 16 #define PASSWORD_LEN ...
  • 网上已经有不少关于c语言函数fread() 和fwrite() 用法分析的文章,在此将这两个函数的用法写下来,是为了巩固所学,加深印象,也为了日后方便查询复习比较,如果能帮助到某些朋友,则是意外的惊喜。 fwrite()函数的...
  • fread size_t fread( void *buffer, size_t ...如果调用成功返回实际读取到的项个数(小于或等于count),如果不成功或读到文件末尾返回 0。 buffer Storage location for data //数据的存储位置 size Ite...
  • n = fread(buf, sizeof(char), SIZE, rfp); printf("%d\n", n); fwrite(buf, sizeof(char), n, wfp); } while (n > 0); fclose(wfp); fclose(rfp); } int main(void) { int cmd = 0; while (1) { ...
  • c语言文件操作 fread(),fseek()

    千次阅读 2014-12-03 15:50:12
    fread 在使用过程中,首先由 FILE 确定一个文件指针 fp,fp 通过 fopen 将对象确定,fread此时对文件的操作是文件内部位置指针移动一个字节再读取一个字节 注意的是:1.fread()函数是有返回值的 返回值: ...
  • unsigned fread(void *buffer,unsigned size,unsigned count,FILE *fp); 根据我的理解是从fp指向的文件首部开始读起,再传入buffer所指向的待存入的数据块首址。 另外我试了一下,当文件中只包含一组数据的时候,还...
  • C语言 fread函数

    2019-10-07 17:46:35
    C语言 fread函数fread fread函数:读取文件函数(从文件流读取数据) 头文件:#include<stdio.h> 函数原型: size_t fread(void * ptr, size_t size, size_t nmenb, FILE* stream); 函数说明:从文件流中...
  • 1.用法:int fread(void *buffer,int size,int count,...2.功能:fread()──从fp所指向文件的当前位置开始,一次读入size个字节,重复count次,并将读入的数据存放到从buffer开始的内存中; buffer是存放读入数
  • C语言文件操作之fread与fwrite

    千次阅读 2017-03-20 21:16:32
    fread与fwrite都是以二进制形式读取和写入文件中的数据 1. 函数原型 int fread(void *buffer,unsigned sife,unsigned count,FILE *fp) 2. 功能说明  从由fp指定的文件中,按二进制形式将sife*count个数据读到...
  • C语言库函数名: 简介  函数原型:  size_t fread(void *buffer, size_t size, size_tcount, FILE *stream);   功 能:  从一个文件流中读数据,读取count个元素,每个元素size字节.如果调用成功返回...
  • c语言文件读写(fread,fprintf)

    千次阅读 2016-05-25 15:38:25
    利用fread进行成块的文件读写 int fread(void *buf,int size,int count,FILE *stream) int fwrite(void *buf,int size,int count,FILE *stream) fread()函数从stream 指向的流文件读取count (字段数)个字段...
  • C语言fread函数

    2019-06-15 20:04:11
    C语言fread函数 //头文件:#include <stdio.h> //fread()函数用于从文件流中读取数据,其原型为: int fread(void *buffer, size_t size, size_t count, FILE * stream); //参数解释 /* * buffer为接收数据的...
  • C语言fread和fwrite

    2013-04-16 22:44:53
    C语言文件读写函数,fread,fwrite函数的使用。 简单实例,仅供参考。
  • 通常文件打开后,读写位置按先后顺序.但有时你想变动读写位置,例如重新从某处起,再读一次. int fseek(FILE *stream, long offset, int fromwhere);fseek 用于二进制方式打开的文件,移动文件读写指针位置. ...
  • c语言fwrite和fread连续读写文件

    万次阅读 2017-01-24 17:29:20
    c语言fwrite和fread连续读写文件流本例程的编写是基于windows,编译器用的是gnu下的gcc: 头文件stdio.h和stdlib.h 读写函数是fwrite和fread 文件指针移动函数有lseek,ftell,fseek *文件结束判断函数feof 函数的具体...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 879
精华内容 351
关键字:

c语言文件fread

c语言 订阅