功能

从文件结构体指针stream中读取数据,每次读取一行。读取的数据保存在buf指向的字符数组中,每次最多读取bufsize-1个字符(第bufsize个字符赋'\0'),如果文件中的该行,不足bufsize个字符,则读完该行就结束。如若该行(包括最后一个换行符)的字符数超过bufsize-1,则fgets只返回一个不完整的行,但是,缓冲区总是以NULL字符结尾,对fgets的下一次调用会继续读该行。函数成功将返回buf,失败或读到文件结尾返回NULL。因此我们不能直接通过fgets的返回值来判断函数是否是出错而终止的,应该借助feof函数或者ferror函数来判断

函数原型

char *fgets(char *buf, int bufsize, FILE *stream);

*buf:字符型指针,指向用来存储所得数据的地址。

bufsize: 整型数据,指明存储数据的大小。

*stream: 文件结构体指针,将要读取的文件流。

stream文件流指针体指向文件内容地址的偏移原则

如果使用fgets()读取某个文件,第一次读取的bufsize为5,而文件的第一行有10个字符(算上'\n'),那么读取文件的指针会偏移至当前读取完的这个字符之后的位置。也就是第二次再用fgets()读取文件的时候,则会继续读取其后的字符。而,如果使用fgets() 读取文件的时候bufsize大于该行的字符总数加2(多出来的两个,一个保存文件本身的'\n'换行,一个保存字符串本身的结束标识'\0'),文件并不会继续读下去,仅仅只是这一行读取完,随后指向文件的指针会自动偏移至下一行。

例子

如果一个文件的当前位置的文本如下

Love, I Have

Since you can do it.

如果用fgets(str1,6,file1);去读取

则执行后str1 = "Love," ,读取了6-1=5个字符

这个时候再执行fgets(str1,20,file1)则执行后str1 = " I Have\n"

而如果

fgets(str1,23,file1);

则执行str1="Love ,I Have",读取了一行(包括行尾的'\n',并自动加上字符串结束符'\0'),当前文件位置移至下一行,虽然23大于当前行上字符总和,可是不会继续到下一行。而下一次调用fgets()继续读取的时候是从下一行开始读。

从 handle 指向的文件中读取一行并返回长度最多为 length - 1 字节的字符串。碰到换行符(包括在返回值中)、EOF 或者已经读取了 length - 1 字节后停止(看先碰到那一种情况)。如果没有指定 length,则默认为 1K,或者说 1024 字节。

出错时返回 FALSE。

②fscanf()

功 能:

从一个流中执行格式化输入,fscanf遇到空格和换行时结束,注意空格时也结束。这与fgets有区别,fgets遇到空格不结束。

用 法: int fscanf(FILE *stream, char *format,[argument...]);

int fscanf(文件指针,格式字符串,输入列表);

常用基本参数对照:

%d:读入一个十进制整数.

%i :读入十进制,八进制,十六进制整数,与%d类似,但是在编译时通过数据前置来区分进制,如加入“0x”则是十六进制,加入“0”则为八进制。例如串“031”使用%d时会被算作31,但是使用%i时会算作25.

%u:读入一个无符号十进制整数.

%f %F %g %G : 用来输入实数,可以用小数形式或指数形式输入.

%x %X: 读入十六进制整数.

%o': 读入八进制整数.

%s : 读入一个字符串,遇空格结束。

%c : 读入一个字符。无法读入空值。空格可以被读入。

fprintf()

fprintf是C/C++中的一个格式化写-库函数,位于头文件中,其作用是格式化输出到一个流/文件中;函数原型为int fprintf( FILE *stream, const char *format, [ argument ]...),fprintf()函数根据指定的格式(format)向输出流(stream)写入数据(argument)。

2.fprintf(stdout,“hello world\n”)

matlab中fgets,fgets(),fscanf(),fprintf()相关推荐

  1. Matlab中print, fprint, fscanf, disp函数的用法

    最近一直在用python,导致学习的一些函数就有点混淆,趁着这会儿看代码,就再回顾下Matlab中print, fprint, fscanf, disp函数的用法 一.print() 函数可以把函数图 ...

  2. c语言中 gets puts,C语言的文件输入输出 getc putc gets puts fgets puts fscanf fprintf

    系统调用I/O函数open,write,read,都是生成文件描述符,然后对文件描述符操作,比如:STDIN_FILENO,STDOUT_FILENO 标准I/O函数,则是由fopen,fgets,f ...

  3. matlab fopen函数的用法,matlab中fopen函数与fprintf用法

    matlab中fopen函数在指定文件打开的实例如下: *1)"fopen"打开文件,赋予文件代号. 语法1:FID= FOPEN(filename,permission) 用指定 ...

  4. matlab中的fscanf函数,matlab中fscanf函数

    Matlab之print,fprint,fscanf,disp函数_数学_自然科学_专业资料.print: print 函数可以把函数图形保存成图片: minbnd = -4*pi; maxbnd = ...

  5. 在matlab中fscanf,matlab中fscanf的用法

    示例:Matlab 读 txt 文件 fid=fopen('fx.txt','r'); %得到文件号 [f,count]=fscanf(fid,'%f %f',[12,90]); %把文件号 1 的数 ...

  6. matlab fscanf %f,matlab中的fscanf函数

    fscanf| Matlab之print,fprint,fscanf,disp函数_电脑基础知识_IT/计算机_专业资料.print: print 函数可以把函数图形保存成图片: [plain] vi ...

  7. Matlab中disp、fprintf和sprintf

    Matlab中disp.fprintf和sprintf有什么区别?_benniaofei18的博客-CSDN博客 matlab中disp.sprintf以及fprintf区别 - Js2Hou - 博 ...

  8. matlab中fprintf函数的具体使用方法

    matlab中fprintf函数的具体使用方法实例如下: fprintf函数可以将数据按指定格式写入到文本文件中.其调用格式为: 数据的格式化输出:fprintf(fid, format, varia ...

  9. matlab fscanf 逗号分隔符,matlab中fscanf

    = string matlab 读 txt 文件 fid=fopen('fx.txt','r'); %得到文件号 [f,count]=fscanf(fid,'%f %f',[12,90]); %把文件 ...

  10. C语言中fscanf的作用,C语言中fgets和fscanf区别详解

    搜索热词 C语言中fgets和fscanf区别详解 一.作用上的大概区别: ①fgets:从文件中读取一行数据存入缓冲区(fgets遇到回车才会结束,不对空格和回车做任何转换就录入到缓冲区,结束后再往 ...

最新文章

  1. android sina oauth2.0 code认证,Android通过第三方登录理解oauth2.0机制
  2. 四针手表指的是什么_1000~1500元的男士手表推荐
  3. tdd java_Java TDD简介–第1部分
  4. Linux入门笔记——echo
  5. [vs2010 project] CppUnit快速入门
  6. 华东电脑申威服务器_华东电脑(600850):申威服务器首批量产下线 国产化业务落地里程碑事件[配资公司会议室]...
  7. 马哥语录第一季第二集
  8. JsonHelper Json转xml,Json转DataSet,DataSet转Json
  9. 如何开启/关闭Pages文稿上的字数统计功能?
  10. 适配器模式之访问者模式
  11. 电子计算机系选课,奥克兰大学计算机系选课
  12. Excel金额大小写转换公式
  13. 决策树原理及numpy实现版
  14. Markdown箭头总汇
  15. html图片自动切换的幻灯片效果的,JS实现可切换图片的幻灯切换效果示例
  16. arduino tft 方向_Arduino2.4英寸TFT显示屏的演示
  17. imx6 通过移植XRM117x(SPI转串口)对Linux中的SPI驱动框架进行分析
  18. axure RP文件如何找回_u盘文件丢失怎么办 u盘文件丢失恢复方法【步骤详解】
  19. java自定义环境变量
  20. 干货满满的一次ctf

热门文章

  1. 批量把excel文件转为csv格式
  2. 王德华三个字永远不会改变哦
  3. 今天是一个倒霉的一天
  4. 【Linux】(超详细步骤)构建软RAID磁盘阵列
  5. iOS 给照片加水印,文字
  6. Android 蓝牙 MAC 地址的读取和修改
  7. C++boost之asio strand
  8. 2022-07-08 第七小组 闫馨月 学习笔记
  9. 新版微头像V2.1.8版全套iApp源码
  10. 本本重装了win7之后不能调屏幕亮度了