C语言读取文件流的相关函数用法简介_C 语言

C语言fread()函数:读文件函数(从文件流读取数据)

头文件:

#include <stdio.h>

定义函数:

size_t fread(void * ptr, size_t size, size_t nmemb, FILE * stream);

函数说明:fread()用来从文件流中读取数据.

参数stream 为已打开的文件指针, 参数ptr 指向欲存放读取进来的数据空间, 读取的字符数以参数size*nmemb 来决定. Fread()会返回实际读取到的nmemb 数目, 如果此值比参数nmemb 来得小, 则代表可能读到了文件的尾或有错误发生, 这时必须用feof()或ferror()来决定发生什么情况.

返回值:返回实际读取到的nmemb 数目。

范例

#include <stdio.h>
#define nmemb 3
struct test
{
  char name[20];
  int size;
} s[nmemb];

main()
{
  FILE * stream;
  int i;
  stream = fopen("/tmp/fwrite", "r");
  fread(s, sizeof(struct test), nmemb, stream);
  fclose(stream);
  for(i = 0; i < nmemb; i++)
    printf("name[%d]=%-20s:size[%d]=%d\n", i, s[i].name, i, s[i].size);
}

执行

name[0]=Linux! size[0]=6
name[1]=FreeBSD! size[1]=8
name[2]=Windows2000 size[2]=11

C语言feof()函数:检查文件流是否读到了文件尾
头文件:

#include <stdio.h>

定义函数:

int feof(FILE * stream);

函数说明:feof()用来侦测是否读取到了文件尾, 尾数stream 为fopen()所返回之文件指针. 如果已到文件尾则返回非零值, 其他情况返回0.

返回值:返回非零值代表已到达文件尾.

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索c语言
文件流
c语言 用法、c语言 的用法、c语言scanf用法、c语言return的用法、c语言struct用法,以便于您获取更多的相关知识。

时间: 2024-10-22 23:26:26

C语言读取文件流的相关函数用法简介_C 语言的相关文章

C语言中返回错误信息的相关函数用法总结_C 语言

C语言strerror()函数:返回错误原因的描述字符串头文件: #include <string.h> 定义函数: char * strerror(int errnum); 函数说明:strerror()用来依参数errnum 的错误代码来查询其错误原因的描述字符串, 然后将该字符串指针返回. 返回值:返回描述错误原因的字符串指针. 范例: /* 显示错误代码0 至9 的错误原因描述 */ #include <string.h> main() { int i; for(i = 0

C语言读取BMP图像数据的源码_C 语言

复制代码 代码如下: /* File name:   bmpTest.c   Author:      WanChuan XianSheng    Date:        Oct 01, 2011   Description: Show all Info a bmp file has. including    FileHeader Info, InfoHeader Info and Data Part.    Reference: BMP图像数据的C语言读取源码*/ #include <st

利用C语言替换文件中某一行的方法_C 语言

文件中存贮的内容如下所示: 11 1122 0 1122 * * 0 0 22 222 0 222 * * 0 0 33 333 0 333 * * 0 0 通过使用下面的几个函数,fopen,fprintf,fscanf,fseek,ftell . 具体的函数函数原型如下所示: FILE*fopen(const char*filename,const char *mode); int fprintf(FILE*stream,const char *format,...) int fscanf(

C++之Boost::array用法简介_C 语言

本文实例讲述了c++里支持静态数组的容器:boost.array.分享给大家供大家参考.具体分析如下: 很多C++程序员都认为boost.array很有可能出现在下一代标准库里.对于boost.array的用法有一个基本的了解是很有必要的. 1. 为什么我们需要固定大小的数组的容器 首先,固定大小的数组还是很常见的,虽然stl提供了vector,但是vector作为动态可增长的数组,比静态数组多了一点开销,这在一些人看来是无法忍受的.c++里也需要提供固定大小容量的数组容器,当然,性能可以和普通

浅析C语言头文件和库的一些问题_C 语言

使用gcc的编译器 头文件没有包含stdlib.h,使用atoi函数(atoi函数在stdlib.h中才有声明),编译却没有出错 如果编译的时候加上-Wall选项,会有个警告,请问这是为什么?这是因为C语言一个非常傻的规定:一个函数如果没有声明函数原型,其返回值类型就是int(所谓的implicit declaration).由于atoi恰好真返回int,所以你即使不包含它的头文件也不报错.至于这个警告,是为了避免你由于忘记声明函数原型而出错. 编译器对于没有定义过的函数原型直接当作它返回int

C语言、C++中的union用法总结_C 语言

开始的话 已经好长时间没有更新了,对不起自己,更对不起我亲爱的读者,同时也对不起自己开办的这个博客平台.忙,太忙了,忙于找工作,找一份好工作,纠结于去大城市闯呢,还是回到本省的首府城市.大家都在纠结这个问题,也希望大家和我讨论讨论.别的先不说了,都工作这么长时间了,还回过头来总结union,确实有点过分,要是和大家说我一直从事于C++开发,还不懂union,大家可能还真的不信.我们每天都在总结那些看似高端的东西,什么设计模式(当然我也有总结了).重构(后期我也会说的了)了,却忽略了那些最基础,最

c语言-C语言读取文件问题求帮忙

问题描述 C语言读取文件问题求帮忙 用命令行输入文件名称如input.txt 内容如下: 1 00j0o0d0c 0oe3c01l5 l00d0193j 00000ec03 0l0000001 0j0000490 30091c0j0 00543dl09 9d1jl50c4 2 -- -- 多组数据 每次将读到的数据存到一个二维数组a[i][j]中运算后输出到output.txt文件中 依次读取并计算 输出 解决方案 直接用fprintf和fscanf来操作就行了只要保证读和写的格式是一样的,就能

android从资源文件中读取文件流并显示的方法_Android

本文实例讲述了android从资源文件中读取文件流并显示的方法.分享给大家供大家参考.具体如下: 在android中,假如有的文本文件,比如TXT放在raw下,要直接读取出来,放到屏幕中显示,可以这样: private void doRaw(){ InputStream is = this.getResources().openRawResource(R.raw.ziliao); try{ doRead(is); }catch(IOException e){ e.printStackTrace(

c语言读取文件出现一串乱码

问题描述 c语言读取文件出现一串乱码 c语言读取文件数据时最后出现一串乱码怎么办 解决方案 如果楼主文件没错误的话,想必应该是类型不匹配导致,比如占位符是%lf,而结构体中对应存储的成员变量却是int