单独读取数据 fscanf

2024-02-18

我正在尝试从文件中读取数字。该文件具有以下格式:

2 4 5 7
3 2 4 7

我尝试使用fscanf收集直到换行符的所有数字并将数字存储在数组中,与第二行相同。但直接从第二行开始不会再次开始并将其存储在另一个数组中。是否可以使用以下方法来做到这一点fscanf?

int main(void)
{
    FILE* fp;
    int *vec = malloc(sizeof(int)*6);
    int *vec_2 = malloc(sizeof(int)*6);
    int row, i;

    fp = fopen("vector.txt","r");

    for(i = 0; i < row; i++) //I don't know how to read until newline
        fscanf(fp, "%d", &vec[k]); //here store the first row in the array

    for(i = 0; i < row; i++)
       fscanf(fp, "%d", &vec_2[i]); //start reading here from the second row

    free(vec);
    free(vec_2);
    return 0;
}

int main(void){
    FILE* fp;
    int cols = 6;
    int *vec_1 = malloc(sizeof(int)*cols);
    int *vec_2 = malloc(sizeof(int)*cols);
    int i, i1, i2;
    char ch;

    fp = fopen("vector.txt","r");

    for(i1 = 0; i1 < cols; ){
        fscanf(fp, "%d%c", &vec_1[i1++], &ch);//Format is limited. "num[ \t\n]"
        if(ch == '\n')
            break;
    }

    i2 = 0;
    while(1==fscanf(fp, "%d", &vec_2[i2])){
        if(++i2 == cols)
            break;
    }
    fclose(fp);
    printf("first  : ");
    for(i=0; i<i1; ++i)
        printf("%d ", vec_1[i]);
    printf("\n");
    printf("second : ");
    for(i=0; i<i2; ++i)
        printf("%d ", vec_2[i]);
    printf("\n");
    free(vec_1);
    free(vec_2);
    return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

单独读取数据 fscanf 的相关文章

随机推荐