如何用C语言读取txt文档中最后一行数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用C语言读取txt文档中最后一行数据相关的知识,希望对你有一定的参考价值。

如何用C语言读取txt文档中最后一行数据,请写出大概代码!!
自己想的:
int i,pp=1;
int totalnumber=0; //文件中double数总个数
FILE *fp;
char mm;

fp = fopen(txtname,"rt");
fseek (fp, -100L, SEEK_END); //文件指针 重新指向文件尾 -100指针指向最后倒数100字节处,保存的行数应该没有100个9这个大。
do

fscanf(fp,"%c",&mm); //逐行扫描

while(mm!='\n'); //判断倒数第二行的换行符
fscanf(fp,"%ld",&LINE); //输出最后一行数字
fclose(fp);

如果想自由地读取txt文档任意位置,就只能使用随机读写数据文件的方式来读与写的操作。因为C语言里的随机读写数据文件提供了 “文件位置标记”和定位的相关函数。
例如:
rewind函数使文件位置标记指向文件开头
fseek函数改变文件位置标记,其中该函数的原型为:
fseek(文件类型指针,位移量,起始点);
如果仅仅是想读取文件末尾一行数据,只需把起始点定位到文件末尾,位移量为负数代表向后挪的意思。
如:
fseek(fp,-100L,SEEK_END); // 文件游标定位到文件末尾处,然后向后退100个字节。
紧接着就是读取了:
fread(buffer,100,1,fp);
参考技术A 关于这个问题,本人也没有什么好的方法。
提个建议:首先将后100个字符读入数组,内存访问肯定比文件访问要快
就是这块:
do

fscanf(fp,"%c",&mm); //逐行扫描

while(mm!='\n'); //判断倒数第二行的换行符

另外若想改进,个人感觉文件的磁盘访问本身就很慢,可以考虑在文件不大时直接用一些内存操作来自:求助得到的回答本回答被提问者和网友采纳
参考技术A char a[MAXN] = "", *p;
int ch;
p = a;

while( (ch = getchar()) != EOF )

if( ch != '\r' )

*p++ = ch;


else

p = a;




没有测试过

如何用C语言实现,读取两个文件数据,然后比较两个数据,如果有不同,转换类型并输出???

参考技术A 1、你先获取文件的数据,我给你一个事列:

//后面的是全路径,必须写对了
FILE *fp1 = fopen("/Users/qianwei/Desktop/2.txt","r" );
if (fp1!= NULL)
char a[50] ;
for (int i=0; i<num; i++)
fgets(a, 50, fp1);
//知道长度后,随机一个数字,再使用循环,来输出该菜单名
printf("%s",a);
fclose(fp1);

上面定义的数组是50的长度,所以小文件是足够了。
2、如果你还想比较来个数据的话,你可以直接用字符串的cmp方法来比较两个方法是否相等,返回值为0就是相等。
3、输出的话,那就直接打印好了printf。

以上是关于如何用C语言读取txt文档中最后一行数据的主要内容,如果未能解决你的问题,请参考以下文章

C语言从TXT文档中读取一组数字时如何判断已经读到最后一个数字?

C语言怎样读取TXT文档中两行字符之间的数据,如begin和end之间的3行数据

如何用C语言读取txt文件中的数据到结构体数组中

如何用JS实现一行一行读取一个TXT文件?

如何用C语言来读取或查找一个文档里面的是信息。

JAVA如何随机读取记事本中的某一行