读取第几行第几个数据

#include <stdlib.h>
#include <string.h>
#include <stdio.h>
 
#define MAX_LENTH_OF_LINE 1024
 
int SetPositionByLine(FILE *fp, int nLine)
{
    int i = 0;
    char buffer[MAX_LENTH_OF_LINE + 1];
    fpos_t pos;
 
    rewind(fp);
    for (; i < nLine; i++)
        fgets(buffer, MAX_LENTH_OF_LINE, fp);
    fgetpos(fp, &pos);
    return 0;
}
int FindNthNo(char buffer[],int target,int arrsize)
{
    int j=0,k=0,n=0,result=0;
    char cc[20]={};
    for( j=0;j<arrsize;j++)
    {
        if(n==target)
            break;
        if(buffer[j]==' ')
        {
              printf("buffer[%d]=%d\n",j,buffer[j]);
          n++;
        }
    }
    for(;j<arrsize;j++)
    {
        if((buffer[j]!=' ')&&(buffer[j]!='\0'))
        {
            cc[k++]=buffer[j];
        }
            else
                {
            break;        
            }
    }
    cc[k++]='\0';
    result=atoi(cc);
    printf("FindNthNo--result=%d\n",result);
    return result;
}
int ReadByLine(int nLine,int No){
 
    char buffer[MAX_LENTH_OF_LINE + 1]={};
    FILE *fp =NULL;
    int count=0;
    fp = fopen("test.txt", "r");
    SetPositionByLine(fp, nLine);
    fgets(buffer, MAX_LENTH_OF_LINE, fp);
    printf("%s\n", buffer);

    count = FindNthNo(buffer,No,sizeof(buffer)/sizeof(char));
    printf("count = %d\n",count);
    fclose(fp);
    return count;
}
int main(){
    ReadByLine(2,1);
    return 0 ;
}

 

发布了64 篇原创文章 · 获赞 171 · 访问量 22万+

猜你喜欢

转载自blog.csdn.net/alpha_love/article/details/100548478