文件字符读写函数fscanf()和 fgets() 比较
一、 文件格式化读入函数 fscanf()
int fscanf(文件指针,格式化字符串,输入列表);
返回值: 整形,输入列表中定义字符串的个数。
1, 例如读取字符串:
char str1[256], str2[256];
FILE *file;
int n,m;
n=fscanf(file,"%s%s",str1,str2); \\n=2
m=fscanf(file,"%s%s\n",str1,str2); \\m=2,格式字符串中可以加入格式控制符
2, fscanf()函数读入开始和结束:
读入开始:从第一个实字符开始,即从第一个非空格符‘ ’、非跳格符tab、非回车换行符‘\n’、非EOF开始。
读入结束:读入过程中遇到的第一个空格符‘ ’、跳格符tab 、 回车换行符‘\n’ 或者EOF。
3, 注意:fscanf()并不读入结束符,也就是空格符、回车符、跳格符tab本身不会被输入字符串。
4,举例如下:
E盘下有文件 e:\\test.txt,文件内容如下:
endloop
endfacet next
triangle
程序实例case 1:
int main()
{
FILE *file;
file=fopen("e:\\test.txt","r"); char str[];
int n(0);
if(1!=fscanf(file,"%s",str)) //读入字符串个数为1,所以返回值为1
return false; long strLenth();
strLenth=strlen(str); //字符串str长度为7,并未取入第一行末尾回车换行符;
//此时文件指针file指向第一行最后的回车换行字符'\n'
cout<<"lenth of str:"<<strLenth<<endl; //7
printf("%s",str); //"endloop"
printf("%c\n",fgetc(file)); //获取并输出test.txt文件第一行最后的回车换行字符'\n'
printf("%c\n",fgetc(file)); //读入并输出test.txt文件第二行开头字符'e'
fclose(file);
}

程序实例case2:
int main()
{
FILE *file;
file=fopen("e:\\test.txt","r"); char str1[], str2[]; fscanf(file,"%*s"); //跳过第一个字符"endfacet",file指向第一行最后一个字符回车换行符'\n' if ( != fscanf(file,"%s %s\n",str1,str2)) return false;
//file执行向str1,str2读入两个字符串;由于fscanf()规定从第一个非空格、非回车换行符、非文件结尾开始读入,
//所以file跳过当前指向的'\n',从第二行开始读入;读入字符串个数为2,所以返回值为2;
//因为输入格式字符串"%s %s\n"最后加了回车控制符,所以file当前指向第二行第一个字符. printf("%s %s\n",str1,str2); //"endfacet next"
printf("%c\n",fgetc(file)); //输出test.txt文件第二行开头字符't' fclose(file);
}

二、从文件读入一个字符串函数 fputs()
char * fgets(str,n,fp);
返回值:返回字符串 str的首地址。
n为要求得到的字符数,但只能从文件fp输入n-1个字符,第n个字符为自动加入的'/0'。
1, 例如:
char *pCh;
char str[128];
FILE *file;
pCh=fgets(str, 128, file);
2, fgets()读取的开始和结束:
fgets()读入开始:所有非EOF开始的字符,即fgets()可以以空格‘ ’、跳格tab、回车换行符'\n'开始读入。
fgets()读入结束:读完n-1个字符之前,遇到换行‘\n’、文件结束EOF。
3, 注意:fgets()函数在读完n-1个字符之前,可以读入空格符' ', 回车符'/n',也可以以他们为开始读入。
4, 举例:
main()
{
FILE *file;
file=fopen("e:\\test.txt","r"); char vmarker[];
fgets(vmarker,,file); //读入文件第一行字符 long strLenth();
strLenth=strlen(vmarker); //字符串长度为8,字符串取入第一行末尾回车符’\n‘
cout<<"lenth of vmarker:"<<strLenth<<endl; //
printf("%s",vmarker); //输出字符串"endloop\n",由于最后一个字符为'\n',执行回车换行 printf("%c\n",fgetc(file)); //获取并输出test.txt文件第二行开头字符'e' fclose(file); }

文件字符读写函数fscanf()和 fgets() 比较的更多相关文章
- c语言中的文件格式化读写函数fscanf和fprintf函数
很多时候我们需要写入数据到文件中时都觉得很困扰,因为格式乱七八槽的,可读性太差了,于是我们就想有没有什么函数可以格式化的从文件中输入和输出呢,还真有.下面我将讲解一下fscanf和fprintf的强大 ...
- (转载)C++文件读写函数之——fopen、fread和fwrite、fgetc和fputc、fgets和fputs、ftellf和fseek、rewind
http://blog.sina.com.cn/s/blog_61437b3b0102v0bt.html http://blog.csdn.net/chenwk891/article/details/ ...
- C++文件读写函数之——fopen、fread和fwrite、fgetc和fputc、fgets和fputs、ftellf和fseek、rewind
由于最近经常使用到c语言中的读写文件,所以在此总结以下,方便以后查找. 在c中,文件操作都是由库函数来实现的,主要是分为读和写两种操作,以下详细讲解以下所有有关文件操作的邯郸乎的用法: //C++写入 ...
- 「C语言」文件的概念与简单数据流的读写函数
写完「C语言」单链表/双向链表的建立/遍历/插入/删除 后,如何将内存中的链表信息及时的保存到文件中,又能够及时的从文件中读取出来进行处理,便需要用到”文件“的相关知识点进行文件的输入.输出. 其实, ...
- C语言文件的读写
对文件的读和写是最常用的文件操作.在C语言中提供了多种文件读写的函数: 字符读写函数 :fgetc和fputc 字符串读写函数:fgets和fputs 数据块读写函数:freed和fwrite 格式 ...
- C文件读写函数介绍(转)
1.fopen() fopen的原型是:FILE *fopen(const char *filename,const char *mode),fopen实现三个功能:为使用而打开一个流,把一个文件和此 ...
- Linux C 文件输入输出函数 fopen()、getc()/fgetc()、putc()/fputc()、fclose()、fprintf()、fscanf()、fgets()、fputs()、fseek()、ftell()、fgetpos()、fsetpos() 详解
fopen(打开文件) 定义函数 FILE * fopen(const char * path,const char * mode); 函数说明 参数path字符串包含欲打开的文件路径及文件名,参 ...
- C语言lseek()函数:移动文件的读写位置
相关函数:dup, open, fseek 头文件:#include <sys/types.h> #include <unistd.h> 定义函数:off_t lseek ...
- python开发基础之字符编码、文件处理和函数基础
字符编码 为什么要有字符编码? 字符编码是为了让计算机能识别我们人写的字符,因为计算机只认识高低电平,也就是二进制数"0","1". 一个文件用什么编码方式存储 ...
随机推荐
- selenium中处理不带ID的弹出窗口
在selenium中虽然有selectWindow(String windowID) 方法,但是对于一些窗口很难取得其window ID的话,如果开发人员没有在html代码中提供ID ,或者getAl ...
- Enter回车切换输入焦点方法兼容各大浏览器
做项目时,客户要求能够用enter回车直接切换输入(焦点),当最后一个时候,直接提交信息. 第一想法就是,网上去copy一段代码直接用.但了百度.谷歌找了个遍,找到的代码80%以上都是一样的.有的代码 ...
- linux(centos7)下安装tomcat7
1.下载tomcat1.7.tar.gz 2.将文件放到/usr/local中 #cp tomcat1.7.tar.gz /usr/local 3.进入到/usr/local中,解压缩tomcat1. ...
- Swift相关图书推荐
Swift与Cocoa框架开发 作 者 [澳] 曼宁(Jonathon Manning),巴特菲尔德-艾迪生(Paris Buttfield 出 版 社 人民邮电出版社 出版时间 2015- ...
- the hard thing about hard things 书摘
1. from communist to VC 领导力是什么,书后面还举了乔布斯的例子,比如NEXT公司时期就是如此,是什么吸引了那些人在前景不明时还跟随乔布斯? 作者用自己与妻子的相遇说明,不要 ...
- [转] Web前端优化之 图片篇
原文链接: http://lunax.info/archives/3101.html Web 前端优化最佳实践第六部分面向 图片(Image),这部分目前有 4 条规则.在最近的 Velocity 2 ...
- 开始使用Ambari吧
最开始接触Hadoop是研究生入学后,帮师姐装装集群什么的.过程很繁琐,很重复,很是让人抓狂.当时装一个三台机器的集群需要两天左右,这还是装的很熟练的时间花费,刚入手的时候简直是惨不忍睹,三台机器装了 ...
- windows程序移植linux
1,路径名统一用正斜杠“/”.(windows下正反斜杠都识别,linux只认正斜杠.) 2,统一使用UTF-8格式编码. vim中无法保存汉字时,可输入下列命令: :set fileencoding ...
- jquerymobile,手机端click无效
1.直接把<script>放到html代码后面,不要放到@section里面. 2.使用代理.如下所示: <script type="text/javascript&quo ...
- ASP.NET 管道事件与HttpModule, HttpHandler简单理解 -摘自网络
第一部分:转载自Artech IIS与ASP.NET管道 ASP.NET管道 以IIS 6.0为例,在工作进程w3wp.exe中,利用Aspnet_ispai.dll加载.NET运行时(如果.NET ...