c++循环读取多行文本文件
来源:互联网 发布:淘宝售后针对评价话术 编辑:程序博客网 时间:2024/05/21 17:55
其实主要的思路就是每次调用fgets,文件指针都会跳到下一行。
自己写的代码
#include <stdio.h>
#include <stdlib.h>
#define Line 1024
int main()
{
//读取多行文件,存多行文件
FILE *fp;
char filename[20];
printf("Please enter the file name\n");
gets(filename);
fp = fopen(filename,"r");
if(fp==NULL)
{
printf("File Open Error");
return 4;
}
char *buf;
buf = (char *)malloc(Line*sizeof(char));
char *p;
while(p = fgets(buf,Line,fp))
{
printf("%s",p);
//原来用puts,它还给你多打了一个换行符
}
free(buf);
fclose(fp);
return 0;
}
下面是抄别人的代码
#include <stdio.h>
#include <stdlib.h>
#define line 1024
//fgets函数的返回值为指针,指向读进来的东西,如果读到没有了,就是0000000
char * readdata(FILE *fp, char *buf)
{
return fgets(buf,line, fp);//读取一行到buf line 的默认值为1k
}
void someprocess(char *buf)
{
printf("%s", buf);//这里的操作你自己定义
}
void main()
{
FILE *fp;
char *buf, filename[20], *p;
printf("input file name:");
gets(filename);
if ((fp=fopen(filename, "r"))==NULL)
{
printf("open file error!!\n");
return;
}
buf=(char*)malloc(line*sizeof(char)); // buf用来存放读进来的字符串
while(1)
{
p=readdata(fp, buf);//每次调用文件指针fp会自动后移一行 readdata是一个函数
if(!p)//文件读取结束则跳出循环
break;
someprocess(buf);
}
free(buf); //应该释放空间
}
摘自:http://c.chinaitlab.com/ccjq/802437.html
- c++循环读取多行文本文件
- 字符流读取多行文件内容进行校验
- python读取多行文件的三种方法
- 多行文件变一行
- 1.python实现循环执行目标目录下脚本文件
- C++多行文本读取
- 读取每一行文件数据的方法bufferedreader
- 利用io流进行文件读取和写入
- C语言读取指定行文本
- 将多行文件转换为一行
- sed 将多行文件变为一行
- python处理多行文件内容
- C++中从文件末尾反向读取N行文件记录。
- 使用cat命令和EOF标识输出多行文件
- 使用cat命令和EOF标识输出多行文件
- linux shell 将多行文件转换为一行
- 使用cat命令和EOF标识输出多行文件
- linux shell 将多行文件转换为一行
- jQuery Mobile 自定义按钮图标
- 对java:comp/env的研究
- 闲来无事,仿了一个百度杀毒主界面
- iOS7 NavigationBar覆盖内容解决
- WIN7 IIS不能显示特殊图片 “+”,"-"号的图片需要转义才可以显示
- c++循环读取多行文本文件
- mybatis实战教程(mybatis in action),mybatis入门到精通
- String碎碎念
- <base>标签的使用
- Struts2 拦截器 入门
- Callable 和 Future实现线程等待
- java.lang.NoClassDefFoundError: org/springframework/expression/PropertyAccessor
- 多线程 list没有锁好导致的 不安全宕机问题
- Matlab图像滤波imfilter与fspecial