网上科普有关“C语言 读一个TXT 时能如何判断是否换行了”话题很是火热,小编也是针对C语言 读一个TXT 时能如何判断是否换行了寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。
可以按字节读取,当读取到'\n'(换行符)时表示换行。
具体操作如下:
1、打开文件。
使用fopen函数打开文件, 由于txt为文本文件,所以模式应选择"r"或者"rt"。
比如
FILE?*fp?=?fopen("in.txt",?"r");2、按字节读取文件,并识别换行。
int?c;while((c=fgetc(fp))?!=?EOF)//读取文件?直到文件结尾。
if(c=='\n')?printf("get?a?new?line\n");//识别到换行,并输出。
3、读取结束后关闭文件。
fclose(fp);
或者
fcloseall();
我测试了你的代码:
#include<stdio.h>#include<string.h>
#include<stdlib.h>
void?main()
{
FILE?*p=fopen("d:\\jiuibf.txt","rt");
int?length?=?0;
for(;fgetc(p)!=EOF;length++);
fclose(p);
printf("第一种方式,文件长度=%d\n",length);
p=fopen("d:\\jiuibf.txt","rb");
fseek(p,0,2);
length=ftell(p);
fclose(p);
printf("第二种方式,文件长度=%d\n",length);
}
文本文件的内容是:
FILE *p=("jiuibf.txt","rt");
int length;
for(;fgetc(p)!=EOF;length);
FILE *p=(jiuibf.txt","rb");
int length;
fseek(p,0,2);
length=ftell(p);
程序的输出是:
原因分析:
在windows下,以文本方式写入文件的\n会被转换为\r\n(也就是0x0D0A),输出的时候,\r\n会被转换回\n。
fgetc在读入时会将\r\n转换成一个\n;上面的文本文件有6个回车换行。
所以第一种方式比第二种方式少6
C语言获得文件的长度方式就是第二种:
FILE*fp;fp=fopen("localfile","rb");//?localfile文件名
fseek(fp,0,SEEK_SET);
fseek(fp,0,SEEK_END);
long?longBytes=ftell(fp);//?longBytes就是文件的长度
关于“C语言 读一个TXT 时能如何判断是否换行了”这个话题的介绍,今天小编就给大家分享完了,如果对你有所帮助请保持对本站的关注!
本文来自作者[admin]投稿,不代表平和号立场,如若转载,请注明出处:https://resphina.com/cshi/202412-540.html
评论列表(4条)
我是平和号的签约作者“admin”!
希望本篇文章《C语言 读一个TXT 时能如何判断是否换行了》能对你有所帮助!
本站[平和号]内容主要涵盖:国足,欧洲杯,世界杯,篮球,欧冠,亚冠,英超,足球,综合体育
本文概览:网上科普有关“C语言 读一个TXT 时能如何判断是否换行了”话题很是火热,小编也是针对C语言 读一个TXT 时能如何判断是否换行了寻找了一些与之相关的一些信息进行分析,如果能碰...