c语言读取字符串的某个字符,新手请问怎么读取指定行字符串

新手请教如何读取指定行字符串

比如 char *str变量 内容是

abc=123

def=456

aaa=444

....

这样很多数据,能不能不使用循环而指定读取哞一行呢?

比如这次我读取了前100行的数据,下次我想从101行开始读取怎么做呢,不想使用循环一行行的读取判断当前是不是101行 ,这样效率太低了。

请教大婶解答

------解决思路----------------------

没理解啥意思,如果是二维数组变量的话,不是直接写行数就可以跳转吗?

------解决思路----------------------

除非每行的长度一样长

------解决思路----------------------

引用:Quote: 引用:除非每行的长度一样长

如果一样长怎么读取呢,另外在请教一下 一个字符串能不能从指定字节开始读取呢,比如先读取前面1000字节,然后下次再从1001字节开始读取。那就从str[1001]开始

------解决思路----------------------

仅供参考:

#include 

#include 

#include 

FILE *f,*fl;

long lastoffset=0,linenum=0;

char ln[256];

int n,k;

int main() {

fl=fopen("lastoffset","r");

if (fl) {

fscanf(fl,"%d %d",&lastoffset,&linenum);

fclose(fl);

}

f=fopen("data.txt","rb");

fseek(f,lastoffset,SEEK_SET);

while (1) {

if (NULL==fgets(ln,255,f)) {

lastoffset=0;

linenum=0;

break;

}

if ('\n'==ln[strlen(ln)-1]) ln[strlen(ln)-1]=0;

if ('\r'==ln[strlen(ln)-1]) ln[strlen(ln)-1]=0;

lastoffset=ftell(f);

linenum++;

printf("%8d: %s\n",linenum,ln);

k=getch();

if (k==27) break;//按Esc键提前退出

}

fclose(f);

fl=fopen("lastoffset","w");

fprintf(fl,"%d %d",lastoffset,linenum);

fclose(fl);

return 0;

}

------解决思路----------------------

重新声明一个char*的数组,先写个循环,把每行分开放到里面,之后要第几行都只接调用

比如你声明的数组名叫s, 需要第一行,就s[0],第二行s[1]....

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值