已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
fgets函数详解fgets函数详解fgets函数从流中读一行或指定个字符,原型是char *fgets(char *s, int n, FILE *stream);从流中读取n-1个字符,除非读完一行,参数s是来接收字符串,如果成功则返回s的指针,否则返回NULL。形参注释:*s结果数据的首地址;n-1:一次读入数据块的长度,其默认值为1k,即1024;stream文件指针例:如果一个文件的当前位置的文本如下Love ,I HaveBut .如果用fgets(str1,4,file1);则执行后str1=Lov,读取了4-1=3个字符,而如果用fgets(str1,23,file1);则执行str=Love ,I Have,读取了一行(包括行尾的n,并自动加上字符串结束符0)。编辑本段序 例:#include #include int main(void)FILE *stream;char string = This is a test;char msg20;/* open a file for update */stream = fopen(DUMMY.FIL, w+);/* write a string into the file */fwrite(string, strlen(string), 1, stream);/* seek to the start of the file */fseek(stream, 0, SEEK_SET);/* read a string from the file */fgets(msg, strlen(string)+1, stream);/* display the string */printf(%s, msg);fclose(stream);return 0;fgets函数用来从文件中读入字符串。fgets函数的调用形式如下:fgets(str,n,fp);此处,fp是文件指针;str是存放在字符串的起始地址;n是一个int类型变量。函数的功能是从fp所指文件中读入n-1个字符放入str为起始地址的空间内;如果在未读满n-1个字符之时,已读到一个换行符或一个EOF(文件结束标志),则结束本次读操作,读入的字符串中最后包含读到的换行符。因此,确切地说,调用fgets函数时,最多只能读入n-1个字符。读入结束后,系统将自动在最后加0,并以str作为函数值返回。编辑本段Linux Cfgets(由文件中读取一字符串,也可以从屏幕上输入一字符串,见范例。)相关函数open,fread,fscanf,getc表头文件include定义函数char * fgets(char * s,int size,FILE * stream);s,数据存储位置;size,读取字符串的最大数量;stream,指向FILE结构的指针。函数说明fgets()用来从参数stream所指的文件内读入字符并存到参数s所指的内存空间,直到出现换行字符、读到文件尾或是已读了size-1个字符为止,最后会加上NULL作为字符串结束。返回值fgets()若成功则返回s指针,返回NULL则表示有错误发生。范例#includeint main(void)char s80;fputs(fgets(s,80,stdin),stdout);return 0;执行this is a test /*输入*/this is a test /*输出*/编辑本段phpfgets(PHP 3, PHP 4, PHP 5)fgets - 从文件指针中读取一行说明string fgets ( int handle , int length )从 handle 指向的文件中读取一行并返回长度最多为 length - 1 字节的字符串。碰到换行符(包括在返回值中)、EOF 或者已经读取了 length - 1 字节后停止(看先碰到那一种情况)。如果没有指定 length,则默认为 1K,或者说 1024 字节。出错时返回 FALSE。例子fgets()函数中,第一个参数指针需要我们事先分配好大小。另外,fgets()函数不适合取二进制的文件,这样,容易发生错误。注:fgets从指定的文件中读一行字符到调用者提供的缓冲区中,gets从标准输入读一行字符到调用者提供的缓冲区中。#include char *fgets(char *s, int size, FILE *stream);功能:从文件流读取一行,送到缓冲区,使用时注意以下几点:1.当遇到换行符或者缓冲区已满,fgets就会停止,返回读到的数据,值得注意的是不能用fgets读二进制文件,因为fgets会把二进制文件当成文本文件来处理,这势必会产生乱码。2.每次调用,fgets都会把缓冲区的最后一个字符设为null,这意味着最后一个字符不能用来存放需要的数据,所以如果有一行,含有LINE_SIZE个字符(包括换行符),要想把这行读入缓冲区,请把参数n设为LINE_SIZE+13. 由结论1可推出:给定参数n,fgets只能读取n-1个字符(包括换行符),如果有一行超过n-1个字符,那么fgets返回一个不完整的行,也就是说,只读取该行的前n-1个字符,但是,缓冲区总是以null字符结尾,对fgets的下一次调用会继续读该行。fputs向指定的文件写入一个字符串,puts向标准输出写入一个字符串。#include int fputs(const char *s, FILE *stream);int puts(const char *s);返回值:成功返回一个非负整数,出错返回EOF缓冲区s中保存的是以0结尾的字符串,fputs将该字符串写入文件stream,但并不写入结尾的0。与fgets不同的是,fputs并不关心的字符串中的n字符,字符串中可以有n也可以没有n。puts将字符串s写到标准输出(不包括结尾的0),然后自动写一个 n到标准输出。怎么将文件中的多行字符串读入到一个二维数组中?求助:如何将文件中的多行字符串读入到一个二维数组中?在1.txt这个文件中有这样三行数据:asdf adfe de dde i am-解决方案-fscanf(f1,%s,ai)遇到空格就停止了,读取一行要用fgets。C/C+ code#include #include int main()FILE *f1,*f2; char a10131=0; int i,j,x,num=0,sum=0; f1=fopen(1.txt,rt); f2=fopen(2.txt,wt); for(i=1;i101;i+) /fscanf(f1,%s,ai); fgets(ai, 30, f1); if(feof(f1)=EOF) break; for(i=0;i6;i+) printf(%c,a1i); fclose(f1); fclose(f2);getch();-解决方案-读取一行要用fgets,遇到n结束用fscanf逐个读单词,遇到制表符、空格或者换行符结束 C语言逐行读取文件内容#include #include #include #define MAX_LINE 1024int main()char bufMAX_LINE; /*缓冲区*/FILE *fp; /*文件指针*/int len; /*行字符个数*/if(fp = fopen(test
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 干挂花岗石墙面施工方法
- 2025牧原集团辽宁区域招聘1789人易考易错模拟试题(共500题)试卷后附参考答案
- 高效能多孔材料在新能源领域的应用与市场预测
- 2025浙江金华市综保惠贸易限公司公开招聘1人易考易错模拟试题(共500题)试卷后附参考答案
- 2025河北邯郸经开国控资产运营管理限公司招聘专业技术人才5名易考易错模拟试题(共500题)试卷后附参考答案
- 铁路防护员考试题库及答案
- 医院助手考试题库及答案
- 2025年上学期高一化学研究性学习报告试题(二)
- 2025年上学期高一生物成本思维考虑投入测评试题
- 2025年医用射线防护用品装置项目发展计划
- 字节跳动绩效管理制度
- 2026年海南省五指山市房地产市场现状调研报告
- 2025贵州黔西南州政协机关面向全州考聘事业单位工作人员2人考试笔试备考试题及答案解析
- 2025年度黑龙江鹤城农业发展投资有限公司招聘工作人员13人笔试考试参考试题附答案解析
- 2025摄影工作室员工合同模板
- 湖南省长沙市长郡教育集团2024-2025学年八年级上学期期中英语试题(含答案)
- 2025年班组化工安全培训试题及答案
- 多媒体教室设备维护与管理操作手册
- 2025人教版九年级全一册Unit1-Unit7期中作文复习专项范文及练习
- 雨课堂在线学堂《现代美学》单元考核测试答案
- 云南省曲靖市实验中学2026届九上物理期中教学质量检测试题含解析
评论
0/150
提交评论