当前位置: 技术问答>linux和unix
一个有意思关于c语言的问题,想和大家一起讨论下
来源: 互联网 发布时间:2016-06-05
本文导语: 一个文本文件里面按行存放了一些数据,假设有n行。 我现在用一个函数一次读一行,实现如下: int get_oid(char objid[]) { FILE *foid; foid = NULL; int len; foid = fopen("./OID","r+"); fgets(objid,MAXLINE,foid); len = strlen(obji...
一个文本文件里面按行存放了一些数据,假设有n行。
我现在用一个函数一次读一行,实现如下:
int
get_oid(char objid[])
{
FILE *foid;
foid = NULL;
int len;
foid = fopen("./OID","r+");
fgets(objid,MAXLINE,foid);
len = strlen(objid);
if(objid[len - 1] == 'n')
objid[len - 1] = '';
return 0;
}
然后在main函数对这个函数进行调用,每次调用这个函数时,我希望是从上次调用的下一行开始读数据,不知道怎么实现?
也就是说:我第一次调用get_oid这个函数的时候,它读的是第一行,我希望我在第二次调用get_oid时,调用的是第二行,以此类推下去
想了很久,没找到办法实现!
大家有什么方法实现吗?或者其他途径实现这个目的!请赐教了!谢谢!!!
我现在用一个函数一次读一行,实现如下:
int
get_oid(char objid[])
{
FILE *foid;
foid = NULL;
int len;
foid = fopen("./OID","r+");
fgets(objid,MAXLINE,foid);
len = strlen(objid);
if(objid[len - 1] == 'n')
objid[len - 1] = '';
return 0;
}
然后在main函数对这个函数进行调用,每次调用这个函数时,我希望是从上次调用的下一行开始读数据,不知道怎么实现?
也就是说:我第一次调用get_oid这个函数的时候,它读的是第一行,我希望我在第二次调用get_oid时,调用的是第二行,以此类推下去
想了很久,没找到办法实现!
大家有什么方法实现吗?或者其他途径实现这个目的!请赐教了!谢谢!!!
|
把foid = fopen("./OID","r+"); 放到外面,以参数的形式传进来
|
请问lz:难道 fgets 调用后每一次都读到第一行么?
貌似这个这个函数 fgets 每一次都是读下一行的吧,直到文件结束 ...
貌似这个这个函数 fgets 每一次都是读下一行的吧,直到文件结束 ...