char *fgets(char *s, int size, FILE *stream);

int fputs(const char *s, FILE *stream);

 

使用fgets从流中读取数据时会在存放的缓冲区中自动添加 '\0' 结尾

例如:

#include <stdio.h>

int main(int argc, const char *argv[])
{
FILE *fp = NULL;
fp = fopen(argv[],"r");
if(fp == NULL )
{
perror("open fail : ");
return -;
}
char buf[] = {};
fgets(buf,,fp); //每次在打开文本流中读取5个字节,但是只会获取到4个,会在buf的第5个位置添加 '\0' ; printf("buf = %s\n",buf);
fclose(fp);
return ;
}

测试

使用 fgets 当读取的这一行不满足5个字符时,如现在这行只有 ab 函数会把这一行的 '\n' 也读取到在 buf的存储 {'a', 'b', '\n', '\0'};是字符串的形式

根据fgets 就可以实现获取文件有多少行内容了

#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
FILE *fp = NULL;
fp = fopen(argv[],"r");
char buf[] = {};
int line = ;
while()
{
if(fgets(buf,,fp) == NULL ) //fgets返回读取的内容,失败返回NULL,就是美都区到内容
{
break;
}
else if(buf[strlen(buf)-] == '\n')// strlen求buf中字符串长度,不包含'\0'( 其实fgets读取的内容末尾是有'\0'的 ),
{ // -1 就是读取到末尾的内容,如果这个字符是 '\n'就是一行
      line++; 
   }
  }
  printf("line = %d\n",line);
  fclose(fp);
  return ;
}

例子: 使用fputs 和fgets 实现文件内容复制

#include <stdio.h>
int main(int argc, const char *argv[])
{
FILE *f_r;//读
FILE *f_w;//写
if((f_r=fopen(argv[],"r")) == NULL) //程序运行时,终端输入文件名,只读方式打开
{
perror("open r :");
return -;
}
if((f_w=fopen(argv[],"w")) == NULL) //只写方式打开,打开文件清空文件内容
{
perror("open w :");
return -;
}
char buf[] = {};
while()
{
if(fgets(buf,,f_r)==NULL)//每次读取10个文件内容
{
break;
}
fputs(buf,f_w); //把读取到的内容写到另一个文件中
}
puts("cp over");
fclose(f_r);
fclose(f_w);
return ;
}

最新文章

  1. ae保存图层
  2. nginx 免安装包
  3. transform原点
  4. md5sum 生成 经md5加密后的字符串
  5. jQuery框架的简单使用(H5)
  6. C++学习38 string字符串的增删改查
  7. Javascript Event
  8. VBS基础篇 - FileSystemObject对象
  9. Spring中注解事务方面的问题
  10. Oracle 常用符号CHR
  11. WebApi(二)-重新封装返回结果
  12. StructureMap Exception Code: 207 Internal exception while creating Instance &#39;06fc8bd7-76db-47c1-8d71-31090a074f5e&#39; of PluginType QIMS.Repository.IComStaffRepository. Check the inner exception for more
  13. interview(转)
  14. K近邻 Python实现 机器学习实战(Machine Learning in Action)
  15. ajax 操作
  16. 发布基于Orchard Core的友浩达科技官网
  17. TensorFlow windows 安装(base anaconda)
  18. python opencv SIFT,获取特征点的坐标位置
  19. [No0000195]NoSQL还是SQL?这一篇讲清楚
  20. python学习笔记(三)- 字典、集合

热门文章

  1. 在规定的时间内出现动画.html
  2. python获取港股通每日成交信息
  3. USACO 2014 US Open Decorating The Pastures
  4. 纯Delphi 原生写的 上传到七牛的功能
  5. List、Map、Set三个接口存取元素时,各有什么特点
  6. svnversion - 为工作代码产生一个紧缩的 (compat) 版本号
  7. AtCoder ABC 131F Must Be Rectangular!
  8. 一个比较独特的&quot;HelloWorld&quot;
  9. Confluence 6 站点备份和恢复
  10. SP6779 GSS7 - Can you answer these queries VII