首页 fscanf (10页)

fscanf (10页)

举报
开通vip

fscanf (10页)fscanffscanf篇一:fscanf()函数fscanf函数名:fscanf功能:从一个流中执行格式化输入用法:intfscanf(FILE*stream,char*format,[argument...]);intfscanf(文件指针,格式字符串,输入列表);返回值:整型,数值等于[argument...]的个数程序例:#include<stdlib.h>#include<stdio.h>intmain(void){inti;printf("Inputaninteger:...

fscanf (10页)
fscanffscanf篇一:fscanf()函数fscanf函数名:fscanf功能:从一个流中执行格式化输入用法:intfscanf(FILE*stream,char*format,[argument...]);intfscanf(文件指针,格式字符串,输入列表);返回值:整型,数值等于[argument...]的个数程序例:#include<stdlib.h>#include<stdio.h>intmain(void){inti;printf("Inputaninteger:");/*readanintegerfromthestandardinputstream*/if(fscanf(stdin,"%d",&i))printf("Theintegerreadwas:%d\n",i);else{fprintf(stderr,"Errorreadingan\integerfromstdin.\n");exit(1);}return0;}返回EOF如果读取到文件结尾。常用基本参数对照:'%d':Scananintegerasasigneddecimalnumber.'%i':Scananintegerasasignednumber.Similarto'%d',butinterpretsthenumberashexadecimalwhenprecededby"0x"andoctalwhenprecededby"0".Forexample,thestring"031"wouldbereadas31using'%d',and25using'%i'.'%u':Scanfordecimalunsignedint,unsignedshort,andunsignedchar'%f':Scanafloating-pointnumberinnormal(fixed-point)notation.'%g','%G':Scanafloating-pointnumberineithernormalorexponentialnotation.'%g'useslower-caselettersand'%G'usesupper-case.'%x','%X':Scananintegerasanunsignedhexadecimalnumber.'%o':Scananintegerasanoctalnumber.'%s':Scanacharacterstring.Thescanterminatesatwhitespace.Anullcharacterisstoredattheendofthestring,whichmeansthatthebuffersuppliedmustbeatleastonecharacterlongerthanthespecifiedinputlength.'%c':Scanacharacter(char).Nonullcharacterisadded.'(space)':Spacescansforwhitespacecharacters.'%lf':Scanasadoublefloating-pointnumber.'%Lf':Scanasalongdoublefloating-pointnumber.附:MSDN中例子Example/*FSCANF.C:Thisprogramwritesformatted*datatoafile.Itthenusesfscanfto*readthevariousdatabackfromthefile.*/#include<stdio.h>FILE*stream;voidmain(void){longl;floatfp;chars[81];charc;stream=fopen("fscanf.out","w+");if(stream==NULL)printf("Thefilefscanf.outwasnotopened\n");else{fprintf(stream,"%s%ld%f%c","a-string",65000,3.14159,'x');/*Setpointertobeginningoffile:*/fseek(stream,0L,SEEK_SET);/*Readdatabackfromfile:*/fscanf(stream,"%s",s);fscanf(stream,"%ld",&l);fscanf(stream,"%f",&fp);fscanf(stream,"%c",&c);/*Outputdataread:*/printf("%s\n",s);printf("%ld\n",l);printf("%f\n",fp);printf("%c\n",c);fclose(stream);}}篇二:matlab的fscanf函数matlab输入fscanf函数matlab调用文本文档的数据,是相当简洁的。但是,目前不管是网络上,还是各类教材说的都很简陋。有时候抱着本书看了n次,仍然不知道如何下手。我最近遇到这样一个问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 。又一个数据文件,当然后缀名是可以更改的,可以是txt也可以是dat。文件不是帮助中的简单数据形式,仅有一个类似矩阵般的数据排列。为了方便运算,数据体中一定要有文字注释,并且,数据分很多中,有渗透率的,也有井的。数据长度不同。而用matlab中的load要求必须要用行长度相同的数据。比如说:1234423456这样的数据很容易读入,用load非常合适,文字注释部分前面加上%,matlab就不会读文字行。但是我的数据是类似下面的数据111131.00长度50505050505050505050505050505050505050505050纵向4.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.004.00这样的话,如果想用load函数,就要把这个数据分成好几份,分别调用,这对于程序的应用非常不便。于是我就考虑用fscanf函数,这个函数的应用与c++中有几分相似,呃,坦诚的说是非常相似,但是好像不支持换行,比如说遇到注释行然后跳过去,他不支持。也许支持,但我不会,^_^用fscanf是可以一个一个读入数据,也可以一下读入一个二维数组。非常方便。我找了个中文的帮助资料,但是是繁体的,不过大家凑活看吧。如果遇到注释行,用下面的语句fscanf(fid,’%6s’,1);,其中的6代表读入的字码长度。本来想多写点,但是好累,休息会,编程不是人干的活。正式之读取资料函数如下之格式:A=fscanf(fid,format)[A,count]=fscanf(fid,format,size)[A,count]=fscanf(fid,format,size)這個指令可以自fid所標示的檔案中將其資料依format的格式取出,並置於矩陣A中。这个指令可以自fid所标示的档案中将其资料依format的格式取出,并置于矩阵A中。fid的定義與前述之fprintf指令相同。fid的定义与前述之fprintf指令相同。另一種型式則增加count與size兩參數。另一种型式则增加count与size两参数。count表示已完成的資料筆數。count表示已完成的资料笔数。而size則是決定讀入之資料量,可用[m,n]表示,表示讀入之資料可填滿mxn的矩陣。而size则是决定读入之资料量,可用[m,n]表示,表示读入之资料可填满mxn的矩阵。其中n可用inf取代,代表EOF(EndofFile)。其中n可用inf取代,代表EOF(EndofFile)。此處格式format之%符號大體上與fprintf相同,其中%e,%f,%g均代表具有浮點之數據。此处格式format之%符号大体上与fprintf相同,其中%e,%f,%g均代表具有浮点之数据。以%12hd為例,12為數值之總位數,d代表使用整數,其前面所置的文字表示整數的型式,h代表短整數,l代表長整數,而lg則代表雙精度浮點值。以%12hd为例,12为数值之总位数,d代表使用整数,其前面所置的文字表示整数的型式,h代表短整数,l代表长整数,而lg则代表双精度浮点值。這些文字代碼可參考fprintf指令,其功能相似。这些文字代码可参考fprintf指令,其功能相似。fid=fopen('sinx.txt');A=fscanf(fid,'%g%g',[2inf]);%最後項為size,表示讀入二列資料,直到檔案底A=fscanf(fid,'%g%g',[2inf]);%最后项为size,表示读入二列资料,直到档案底fclose(fid);A=A'A=A=00.314200.31420.62830.94250.62830.94251.25661.57081.25661.57081.88502.19911.88502.19912.51332.82742.51332.82743.141603.141600.30900.58780.30900.58780.80900.95110.80900.95111.00000.95111.00000.95110.80900.58780.80900.58780.309000.30900fscanf功能简介从文本文件中读取数据版本支持7.8.0.347(R2009a)语法A=fscanf(fileID,format)A=fscanf(fileID,format,sizeA)[A,count]=fscanf(...)描述A=fscanf(fileID,format)从一个文本文件中数据列顺序读取并转换成数组。要转换,fscanf使用的格式和编码方案与该文件相关联。要设置的编码方案,使用fopen。该fscanf函数重新应用在整个文件的格式,并在最终的文件标记位置的文件指针。如果fscanf无法比拟的格式的数据,内容是:只有那部分分为A,停止处理。A=fscanf(fileID,format,sizeA)读入一个sizeA元素和最后一个元素的位置后,文件指针读取。sizeA可以是整数,也可以有表格[m,n]。[A,count]=fscanf(...)fscanf成功读取,返回数字的元素。输入参数fileIDFOPEN获得的整数文件标识符。format字符串括在单引号中,描述每个元素的类型(场)。包括一个或更多下列说明符。字段类说明符详情型10进制%dInteger,确定进制的值。默认为进制为10。如果最初的数字是为0xsigned%i或0X,这是进制为16。如果最初的数字是0,这是进制8。64位值,进制为10,8,或16%ldor%li10进制%u8进制%oInteger,%xunsigned16进制64位值,进制为10,8,或16%lu,%lo,%lx浮点字段可以包含以下内容(大小写不敏感的话):Inf文件,%f-Inf文件,南,或南。浮点字段可以包含以下内容(大小写不敏感的话):Inf文件,浮点数%e-Inf文件,南,或南。浮点字段可以包含以下内容(大小写不敏感的话):Inf文件,%g-Inf文件,南,或南。阅读系列的字符,直到找到空白。%s阅读任何单个字符,包括空格。字串%c(要读多个字符,指定字段的长度。)只读括号中的字符,直到第一个非匹配字符或空格。%[...]可选:要跳过字段,插入一个星号(*后百分号(%))。例如,要跳过整数,指定%*D要指定一个字段的最大宽度,插入一个数字。例如,%10C条读取时间刚好10个字符,包括空格。若要跳过特定格式的字符集,插入文字字符。例如,要读只能从'圆周率=3.14159浮点数字',指定一个'格式PI=%f的。sizeAA:在输出数组指定维度下列形式之一:inf阅读该文件的末尾。(默认)n阅读最多n个元素。[m,n]阅读最多M*n个元素的列顺序。n可以是inf,但M却不能。当格式包括了%s,A可以包含超过n列。N是指元素,而不是字符。输出参数A一个数组。如果格式包括:只有数字说明符,一个是数字。如果格式包括只有64位有符号整数说明符,一类是int64。同样,如果格式包括只有64位无符号整数说明符,是一类uint64。否则,一类是double。如果sizeA是inf或n,则A是一个列向量。如果输入包含比sizeA元素少,与MATLAB的垫一个零。只有字符或字符串说明符(%C或%s)中,A是一个字符数组。如果sizeA是inf或N,A是一个行向量。如果输入包含比sizeA字符较少,MATLAB的垫带有字符(0)。综合运用数字和字符说明符,一个是数字,类double。MATLAB的每个字符转换为等价的数值。即使发生这种转换的格式明确跳过所有的数字值(例如,一个'格式%*d%s'的)。如果不能匹配MATLAB的输入格式,并包含数字的格式和字符说明符,A可以是数字或字符。一个关于MATLAB的价值取决于前处理停止读取类。countfscanf读入A元素的数目应用举例阅读文件的内容。fscanf重用整个文件的格式,所以你不需要控制回路:%Createafilewithanexponentialtablex=0:.1:1;y=[x;exp(x)];fid=fopen('exp.txt','w');fprintf(fid,'%6.2f%12.8f\n',y);fclose(fid);%Readthedata,fillingAincolumnorder%Firstlineofthefile:%0.001.00000000fid=fopen('exp.txt');A=fscanf(fid,'%g%g',[2inf]);fclose(fid);%TransposesothatAmatches%theorientationofthefileA=A';跳过特定字符的文件,并只返回数字值:%Createafilewithtemperaturestempstr='78°F72°F64°F66°F49°F';篇三:fscanf函数的正确调用形式是()。A.fscanf(文件指针,一、整体解读试卷紧扣教材和考试说明,从考生熟悉的基础知识入手,多角度、多层次地考查了学生的数学理性思维能力及对数学本质的理解能力,立足基础,先易后难,难易适中,强调应用,不偏不怪,达到了“考基础、考能力、考素质”的目标。试卷所涉及的知识内容都在考试大纲的范围内,几乎覆盖了高中所学知识的全部重要内容,体现了“重点知识重点考查”的原则。1.回归教材,注重基础试卷遵循了考查基础知识为主体的原则,尤其是考试说明中的大部分知识点均有涉及,其中应用题与抗战胜利70周年为背景,把爱国主义教育渗透到试题当中,使学生感受到了数学的育才价值,所有这些题目的设计都回归教材和中学教学实际,操作性强。2.适当设置题目难度与区分度选择题第12题和填空题第16题以及解答题的第21题,都是综合性问题,难度较大,学生不仅要有较强的分析问题和解决问题的能力,以及扎实深厚的数学基本功,而且还要掌握必须的数学思想与方法,否则在有限的时间内,很难完成。3.布局合理,考查全面,着重数学方法和数学思想的考察在选择题,填空题,解答题和三选一问题中,试卷均对高中数学中的重点内容进行了反复考查。包括函数,三角函数,数列、立体几何、概率统计、解析几何、导数等几大版块问题。这些问题都是以知识为载体,立意于能力,让数学思想方法和数学思维方式贯穿于整个试题的解答过程之中。
本文档为【fscanf (10页)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: ¥11.9 已有0 人下载
最新资料
资料动态
专题动态
机构认证用户
友格文库
暂无简介~
格式:doc
大小:22KB
软件:Word
页数:0
分类:
上传时间:2020-05-23
浏览量:7