C语言读取文件,但是有换行符

做一个c语言程序,要从文件中读取字符,文件是.fna格式的,里面有不少换行符,我怎么把文件中的字符读出到数组中,并且去掉换行符?
最新回答
过来人

2024-05-03 02:42:20

IO时。。。
char c;
c = gechar();
每获取一个字符,先判断是不是'\n'换行符。如果是的话就跳过不理,不是的话就放到数组里面。

读文件时,每读出一个字符就判断他是不是等于‘\n’,如果是的话就跳过不理,不是的话就放到数组里面。
作业君是个傲娇的东西

2024-05-03 02:42:51

#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;
}
金泫雅

2024-05-03 02:29:20

第一 逐行读 然后拼接
第二 获得文件大小 直接动态申请这么大一个字符串数组 一次性读取
七情六欲

2024-05-03 00:27:03

fna如果是个甚么文件格式,C语言读起来很麻烦把,为何不用txt格式的呢
你永久不要离开我~

2024-05-03 03:49:55

.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);
}