关于C语言中使用fread()读取整个文件的心得

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    struct testF{
        int a;
        int b;
        float c;
    };
    
    struct testF struct1[5]={{5, 4, 5.4}, {4, 3, 4.3}, {3, 2, 3.2}, {2, 1, 2.1}, {1, 0, 1.01}};
    FILE *fpW;
    if((fpW=fopen("./testFile", "wb")) == NULL){
        printf("Open file faied, yoou will exit this program.\n");
        exit(1);
    }
    int i;
    for(i = 0; i< 5; i++){
        fwrite(&struct1[i], sizeof(struct1[i], 1, fpW);
    }
    fclose(fpW);
    
    
    FILE *fpR;
    struct testF struct2;
    fseek(fpR, 0, SEEK_END); //将指针定在文件结尾处
    long fSize = ftell(fpR); //返回文件的大小
    rewind(fpR); //将指针重新定位在文件开始处
    while(1){
        fread(&struct2, sizeof(struct2), 1, fpR);
        printf("%d %d %f", struct2.a, struct2.b, struct2.c);
        if(ftell(fpR) == fSize) //判断是否已读到文件结尾处
            break; 
    }
    fclose(fpR);
    return 0;
}

关于C语言中使用fread()读取整个文件的心得,布布扣,bubuko.com

时间: 2024-10-14 06:39:22

关于C语言中使用fread()读取整个文件的心得的相关文章

VS2012+C语言+图形界面窗口+读取TXT文件+显示

#include <windows.h> #include <stdio.h> #include <stdlib.h> #include <time.h> #define ID_TIMER 1 LRESULT CALLBACK WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); //声明回调函数 int WINAPI WinMain(HINSTANCE hInstance, HINST

[转] C#实现在Sql Server中存储和读取Word文件

出处 C#实现在Sql Server中存储和读取Word文件 要实现在Sql Server中实现将文件读写Word文件,需要在要存取的表中添加Image类型的列,示例表结构为: CREATE TABLE CONTRACTS ( ID VARCHAR (50), CONTRACT_FILE IMAGE ); 要将Word文件存储到数据库的CONTRACT_FILE字段中,需要将文件转换为byte数组,具体代码如下: /// 将文件转换为byte数组 /// <summary> /// 将文件转换

java中利用RandomAccessFile读取超大文件

超大文件我们使用普通的文件读取方式都很慢很卡,在java中为我提供了RandomAccessFile函数,可以快速的读取超大文件并且不会感觉到卡哦,下面看我的一个演示实例. 服务器的日志文件往往达到400多M,简单的文件读取实在太慢,太占用机器资源. 特别是如果你需要5分钟就扫描一次日志文件,来统计一些即时数据.比如刚才10分钟的来访客户(大型网站用户统计系统例如51.la 会经常用到吧.)即时扫描大数据文件中的一部分显得非常之重要.本文讲述了如果使用java的RandomAccessFile方

C语言中二进制文件的读取

fwrite()与fprintf()是不同的. fwrite将写入的数据作为文件的磁盘内容保存.fprintf将写入的数据的每个字符所对应的ASCII码作为文件的磁盘内容保存.fprintf做了一个转换的工作. 当打开文件时,记事本会自动把文件的磁盘内容作为ASCII码转换成对应的字符,然后再显示出来,即显示的是文本内容而不是磁盘内容. 例如,用fwrite向文件写入"65"时,文件的磁盘内容就是保存的65(磁盘上以二进制表示).当用记事本打开文件时,记事本会读到65,并把65看作一个

D语言中使用Curl读取网页

D语言中对Curl库有两个包, 一个是etc.c.curl,一个是std.net.curl,其中etc.c.curl是原始的libcurl库的c语言接口转化为D语言的接口,使用这个包里的函数,可以更原始的方法使用libcurl库.而std.net.curl包则是在etc.c.curl基础上对libcurl库的调用做了一个封装,让使用者使用起来更加方便.使用etc.c.curl与c语言里使用curl基本上完全一样,没什么大的区别,这里不讨论.下面只是简单介绍一下使用std.net.curl来编写一

Spring 中 用 ${xxx} 读取properties文件的说明

properties 如果在 spring 中通过 PropertyPlaceholderConfigurer 加载,当spring 中需要 用到 properties 中的一些 key 和value 值时可以 利用 PorpertyPlaceholderConfiger 提供的$ 直接 取得. PorpertyPlaceholderConfiger 有一些常用的属性,在一些高级应用中,可能会用到 locations fileEncoding 属性文件的编码格式 order 文件中定义了多个Pr

C语言中创建自己函数库文件流程

1.新建一个.h,写声明语句(包括宏定义.变量声明.函数原型声明),如:fun.h #define __fun__ #ifndef __fun__ int fun(int x); //continue code here.... #endif 2.新建.c或.m文件,实现函数体,如:fun.c int fun (int x) { if(x==1||x==2) return 1; else return (fun(x-1)+fun(x-2)); } 3.在shell命令中输入gcc -c fun.

C 语言中包含的标准头文件(24个)

<assert.h><complex.h><ctype.h><errno.h><fenv.h><float.h><inttypes.h><iso646.h><limits.h><locale.h><math.h><setjmp.h><signal.h><stdarg.h><stdbool.h><stddef.h>&l

FTP服务器使用客户端可以正常下载,但是在java代码中,无法读取到文件,用的是org.apache.commons.net.ftp

http://book.zhulang.com/302338/99012.html http://book.zhulang.com/302338/99013.html http://book.zhulang.com/302338/99014.html http://book.zhulang.com/302338/99015.html http://book.zhulang.com/302338/99016.html http://book.zhulang.com/302338/99017.htm