fread函数的应用

头文件:<cstdio/stdio.h>

作用:从一个文件流中读数据。最多读取count个元素,每个元素size字节,如果调用成功返回实际读取到的元素个数,如果不成功或读到文件末尾返回 0。

函数原型:size_t fread ( void *buffer, size_t size, size_t count, FILE *stream)

解析:

buffer:用于接受数据的内存地址

size:要读写的字节数,单位是字节

count:要进行读写多少个size字节的数据项,每个元素是size字节.

stream:输入流

返回值:实际读取的元素个数.如果返回值与count不相同,则可能文件结尾或发生错误.

从ferror和feof获取错误信息或检测是否到达文件结尾.

例子

long long  a;

fread(&a,sizeof(long long),1,std);

char b[10];

fread(b,sizeof(char),10,std);

题目应用:

UvaLive 6426 - Count:

链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4437

题目中说数据是从二进制流中读入,而且数据量达到了10000*10000,用scanf,输入外挂都会超时,用fread输入则不会超时。

代码:

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<vector>
#include<cstring>
using namespace std;
int m,n;
int a[10005][10005];
int main()
{
    int c;
    fread(&n,sizeof(int),1,stdin);
    fread(&m,sizeof(int),1,stdin);
    for(int i=0;i<n;i++)
    {
        fread(a[i],sizeof(int),m,stdin);
    }
    int l,r;
    int last=m;
    while(fread(&l,sizeof(int),1,stdin))
    {
        fread(&r,sizeof(int),1,stdin);
        int ans=0;
        for(int i=0;i<n;i++)
        {
            if(a[i][0]>r)break;
            int ll=lower_bound(a[i],a[i]+last,l)-a[i];
            int rr=upper_bound(a[i],a[i]+last,r)-a[i];
            if(rr<=ll)continue;
            ans+=rr-ll;
        }
        printf("%d\n",ans);
    }
    return 0;
}
时间: 2024-10-04 23:00:21

fread函数的应用的相关文章

fscanf函数和fprintf函数、fgets函数和fputs函数、fread函数和fwrite函数

1. fscanf 函数和 fprintf 函数 1.1 fscanf 函数 fscanf 函数只能从文本文件中按格式输入.fscanf 函数和 scanf 函数相似,只是输入的对象是磁盘上文本文件的数据.函数的调用形式如下: fscanf( 文件指针,格式控制字符串,输入项表 ); 例如,若文件指针 fp 指向一个已打开的文本文件,a.b 分别为整型变量,则以下语句从 fp 所指的文件中读入两个整数放入变量 a 和 b 中: fscanf( fp, "%d%d", &a, &

【转】fread函数详解

"fread"以二进制形式,从文件读出数据.语法1:[a,count]=fread(fid,size,precision)语法2:[a,count]=fread(fid,size,precision,skip)size:    不指定     :到尾返回读.          N         : 读出N个数据,构成列向量.          inf       : 读出fid指向的打开的文件的全部数据.          [M,N]     : 读出N个数据,构成列向量,填入M*N

fread函数

收藏 查看我的收藏 719有用+1 已投票 4 fread 编辑 锁定 fread是一个函数.从一个文件流中读数据,最多读取count个项,每个项size个字节,如果调用成功返回实际读取到的项个数(小于或等于count),如果不成功或读到文件末尾返回 0. 中文名 无 外文名 fread 属    性 函数 参    数 buffer 函数原型 size_t fread 所属库 #include <stdio.h> 目录 1 简介 ? 函数原型 ? 参 数 ? 返回值 2 程序例 ? C语言

fopen()、fwrite()、fread()函数使用说明与示例

fopen()函数: 1.作用: 在C语言中fopen()函数用于打开指定路径的文件,获取指向该文件的指针. 2.函数原型: [cpp] view plain copy FILE * fopen(const char * path,const char * mode); -- path: 文件路径,如:"F:\Visual Stdio 2012\test.txt" -- mode: 文件打开方式,例如: "r" 以只读方式打开文件,该文件必须存在. "w&

C语言 fread函数

C语言 fread函数 fread fread函数:读取文件函数(从文件流读取数据) 头文件:#include<stdio.h> 函数原型: size_t fread(void * ptr, size_t size, size_t nmenb, FILE* stream); 函数说明:从文件流中读取数据,stream为已打开的文件指针,ptr指向欲保存读取文件数据的空间,size为从文件中读取字符的大小,nmenb为欲读取字符数,读取成功后fread会返回一个值等同于nmenb的数值,相反会返

open()、fwrite()、fread()函数使用说明与示例

fopen()函数: 1.作用: 在C语言中fopen()函数用于打开指定路径的文件,获取指向该文件的指针. 2.函数原型: FILE * fopen(const char * path,const char * mode); -- path: 文件路径,如:"F:\Visual Stdio 2012\test.txt" -- mode: 文件打开方式,例如: "r" 以只读方式打开文件,该文件必须存在. "w" 打开只写文件,若文件存在则文件长

fread函数和fwrite函数

1.函数功能   用来读写一个数据块. 2.一般调用形式   fread(buffer,size,count,fp);   fwrite(buffer,size,count,fp); 3.说明   (1)buffer:是一个指针,对fread来说,它是读入数据的存放地址.对fwrite来说,是要输出数据的地址.   (2)size:要读写的字节数(默认为1):   (3)count:要进行读写多少个size字节的数据项:    (4)fp:文件型指针. 注意:1 完成次写操(fwrite())作

php的fread函数的一个巨大的坑

先看看fread的manual,如下: http://php.net/manual/en/function.fread.php fread() reads up to length bytes from the file pointer referenced by handle. Reading stops as soon as one of the following conditions is met: length bytes have been read EOF (end of file

【转】fread函数和fwrite函数

1.函数功能   用来读写一个数据块. 2.一般调用形式   fread(buffer,size,count,fp);   fwrite(buffer,size,count,fp); 3.说明   (1)buffer:是一个指针,对fread来说,它是读入数据的存放地址.对fwrite来说,是要输出数据的地址.   (2)size:要读写的字节数:   (3)count:要进行读写多少个size字节的数据项:   (4)fp:文件型指针. 注意:1 完成次写操(fwrite())作后必须关闭流(