首页 > 解决方案 > 每次进入循环时,如何从文本文件中读取下一行?

问题描述

我已经编写了这个程序,我希望每次进入 while 循环时都从我的文本文件中读取下一行,而不是前几行。到目前为止,这个带有 fscanf 的代码在列表中插入了我想要的元素之前的所有元素。我的文本文件每行有 4 个元素,我也不想将其全部作为字符串读取。例如,如果第 1 行的元素已进入列表,则下一次在循环中我想从第 2 行开始,而不是再次读取第 1 行等。

for(Time=0.0;Time<200;Time=Time+12.0) {
        for(i=5;i<8;i++){
        char to_open[32];
        snprintf(to_open,32, "fptg_%d.txt", i);
        printf("i=%d\n", i);
        if ((fr = fopen(to_open, "r")) == NULL)
        {
            break;
        }else{
            fscanf(fr, "%d %d %d %lf",&rollnumber, &src, &dest, &gentime);
            while(gentime<Time){
                if (insertedpackets[i]<10){ 
                    printf ("-------------TIMESLOT-------------\n");
                    printf("time: %.1f\n",Time);
                    fscanf(fr, "%d %d %d %lf\n",&rollnumber, &src, &dest, &gentime);
                    insert(rollnumber,src,dest,gentime); 
                    insertedpackets[i]++;
                    printf("insertedpackets[%d]:%d\n\n", i, insertedpackets[i]); 
                    printf ("----------list till now-----------\n");
                    display();
                    printf ("----------------------------------\n\n\n\n");
        }
        else if (insertedpackets[i]>=10)
        { 
            break;
        }
    
    }

标签: clisttext-files

解决方案


推荐阅读