一、 文件格式化读入函数 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() 比较的更多相关文章

  1. c语言中的文件格式化读写函数fscanf和fprintf函数

    很多时候我们需要写入数据到文件中时都觉得很困扰,因为格式乱七八槽的,可读性太差了,于是我们就想有没有什么函数可以格式化的从文件中输入和输出呢,还真有.下面我将讲解一下fscanf和fprintf的强大 ...

  2. (转载)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/ ...

  3. C++文件读写函数之——fopen、fread和fwrite、fgetc和fputc、fgets和fputs、ftellf和fseek、rewind

    由于最近经常使用到c语言中的读写文件,所以在此总结以下,方便以后查找. 在c中,文件操作都是由库函数来实现的,主要是分为读和写两种操作,以下详细讲解以下所有有关文件操作的邯郸乎的用法: //C++写入 ...

  4. 「C语言」文件的概念与简单数据流的读写函数

    写完「C语言」单链表/双向链表的建立/遍历/插入/删除 后,如何将内存中的链表信息及时的保存到文件中,又能够及时的从文件中读取出来进行处理,便需要用到”文件“的相关知识点进行文件的输入.输出. 其实, ...

  5. C语言文件的读写

    对文件的读和写是最常用的文件操作.在C语言中提供了多种文件读写的函数: 字符读写函数  :fgetc和fputc 字符串读写函数:fgets和fputs 数据块读写函数:freed和fwrite 格式 ...

  6. C文件读写函数介绍(转)

    1.fopen() fopen的原型是:FILE *fopen(const char *filename,const char *mode),fopen实现三个功能:为使用而打开一个流,把一个文件和此 ...

  7. 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字符串包含欲打开的文件路径及文件名,参 ...

  8. C语言lseek()函数:移动文件的读写位置

    相关函数:dup, open, fseek 头文件:#include <sys/types.h>    #include <unistd.h> 定义函数:off_t lseek ...

  9. python开发基础之字符编码、文件处理和函数基础

    字符编码 为什么要有字符编码? 字符编码是为了让计算机能识别我们人写的字符,因为计算机只认识高低电平,也就是二进制数"0","1". 一个文件用什么编码方式存储 ...

随机推荐

  1. HDU5427

    #include<cstdio> #include<iostream> #include<cstring> #include<algorithm> us ...

  2. ProgressBar 各种样式

    多式样ProgressBar 普通圆形ProgressBar 该类型进度条也就是一个表示运转的过程,例如发送短信,连接网络等等,表示一个过程正在执行中. 一般只要在XML布局中定义就可以了. < ...

  3. 深入学习Heritrix---解析CrawlController(转)

    当我们以Web UI方式使用Heritrix时,点击任务开始(start)按钮时,Heritrix就开始了它的爬取工作.但它的内部 执行流程是怎样的呢?别急,下面将慢慢道来. (一)CrawlJobH ...

  4. 《C和指针》读书笔记 第2章-基本概念

    原创文章,转载请注明出处:http://www.cnblogs.com/DayByDay/p/3936485.html

  5. RequireJS进阶(三) 转

    进阶的前面两篇讲述了r.js如何通过命令行把所有的模块压缩为一个js文件或把所有的css压缩为一个css文件.其中包括一些压缩配置参数的使用. 但以上两种方式有几个问题 1.通过命令手动配置压缩选项显 ...

  6. eclipse插件explorer安装使用

    我们知道myeclipse有个open in explorer的按钮.可以方便我们打开任意IDC下的文件或则插件目录 但是eclipse下确没有.因此需要下载下载个eclipse explorer插件 ...

  7. Dubbo原理解析-注册中心之Zookeeper协议注册中心

    下面我们来看下开源dubbo推荐的业界成熟的zookeeper做为注册中心, zookeeper是hadoop的一个子项目是分布式系统的可靠协调者,他提供了配置维护,名字服务,分布式同步等服务.对于z ...

  8. 设置UIImage 圆角

    //设置UIImage圆角 @interface UIImage(UIRoundedRectImage) + (id) createRoundedRectImage:(UIImage*)image s ...

  9. db file sequential read (数据文件顺序读取)

    转载:http://www.dbtan.com/2010/04/db-file-sequential-read.html db file sequential read (数据文件顺序读取): db ...

  10. bzoj3620 似乎在梦中见过的样子

    好久没有写过KMP了,今天写个KMP练练手.此题就是枚举左端点暴力,用KMP做到O(n^2) #include<cstdio> #include<cstring> using ...