C语言读取文件,但是有换行符
做一个c语言程序,要从文件中读取字符,文件是.fna格式的,里面有不少换行符,我怎么把文件中的字符读出到数组中,并且去掉换行符?...
做一个c语言程序,要从文件中读取字符,文件是.fna格式的,里面有不少换行符,我怎么把文件中的字符读出到数组中,并且去掉换行符?
展开
5个回答
展开全部
#include "stdio.h"
int main()
{
FILE *pf=NULL; //文件指针
int filelen=0;
int i=0;
char *buf;
pf=fopen("D:\\test.txt","r"); //以只读方式打开文件
if(pf==NULL)
{
return 0;
}
else
{
//获得文件长度
fseek(pf,0,SEEK_END); //文件指针移到末尾
filelen=ftell(pf); //获得文件当前指针位置,即为文件长度
rewind(pf); //将文件指针移到开头,准备读取
buf=malloc(filelen+1); //新建缓冲区,存储独处的数据
//将缓冲区的数据设置为0
for(i=0;i<filelen+1;i++)
buf[i]=0;
//读取文件
fread(buf,filelen,1,pf);
//关闭文件
fclose(pf);
//buf中即为要读出的数据
printf("%s\n",buf); //输出一下数据,你可以随便怎么用
free(buf); //最后记得要释放
}
return 1;
}
int main()
{
FILE *pf=NULL; //文件指针
int filelen=0;
int i=0;
char *buf;
pf=fopen("D:\\test.txt","r"); //以只读方式打开文件
if(pf==NULL)
{
return 0;
}
else
{
//获得文件长度
fseek(pf,0,SEEK_END); //文件指针移到末尾
filelen=ftell(pf); //获得文件当前指针位置,即为文件长度
rewind(pf); //将文件指针移到开头,准备读取
buf=malloc(filelen+1); //新建缓冲区,存储独处的数据
//将缓冲区的数据设置为0
for(i=0;i<filelen+1;i++)
buf[i]=0;
//读取文件
fread(buf,filelen,1,pf);
//关闭文件
fclose(pf);
//buf中即为要读出的数据
printf("%s\n",buf); //输出一下数据,你可以随便怎么用
free(buf); //最后记得要释放
}
return 1;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第一 逐行读 然后拼接
第二 获得文件大小 直接动态申请这么大一个字符串数组 一次性读取
第二 获得文件大小 直接动态申请这么大一个字符串数组 一次性读取
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
fna如果是个甚么文件格式,C语言读起来很麻烦把,为何不用txt格式的呢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
.fna如果是个什么文件格式,C语言读起来很麻烦把,为什么不用txt格式的呢
追问
这个是DNA序列专用格式,能用记事本查看,应该能读吧
追答
你确定你只想删除换行,如果你确定,那么这个就可以,这个是我顺手写的,功能不够,你使用时要把源文件的输入文件名input.fna改成你的.fna名
#include"stdio.h"
main()
{
int c;
FILE *fp,*ip;
if(((fp=fopen("input.fna","r"))!=NULL)&&((ip=fopen("output.fna","w"))!=NULL))
{
while((c=getc(fp))!=EOF)
if(c!='\n')
putc(c,ip);
}
fclose(fp);
fclose(ip);
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询