标准 IO fgets与fputs 对文件的操作
2024-10-07 17:45:21
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 ;
}
最新文章
- ae保存图层
- nginx 免安装包
- transform原点
- md5sum 生成 经md5加密后的字符串
- jQuery框架的简单使用(H5)
- C++学习38 string字符串的增删改查
- Javascript Event
- VBS基础篇 - FileSystemObject对象
- Spring中注解事务方面的问题
- Oracle 常用符号CHR
- WebApi(二)-重新封装返回结果
- 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
- interview(转)
- K近邻 Python实现 机器学习实战(Machine Learning in Action)
- ajax 操作
- 发布基于Orchard Core的友浩达科技官网
- TensorFlow windows 安装(base anaconda)
- python opencv SIFT,获取特征点的坐标位置
- [No0000195]NoSQL还是SQL?这一篇讲清楚
- python学习笔记(三)- 字典、集合
热门文章
- 在规定的时间内出现动画.html
- python获取港股通每日成交信息
- USACO 2014 US Open Decorating The Pastures
- 纯Delphi 原生写的 上传到七牛的功能
- List、Map、Set三个接口存取元素时,各有什么特点
- svnversion - 为工作代码产生一个紧缩的 (compat) 版本号
- AtCoder ABC 131F Must Be Rectangular!
- 一个比较独特的";HelloWorld";
- Confluence 6 站点备份和恢复
- SP6779 GSS7 - Can you answer these queries VII