怎么修改这一行的内容

问题遇到的现象和发生背景

怎么修改这一行的内容

用代码块功能插入代码,请勿粘贴截图
    printf("需要修改商品的编号");
        scanf_s("%d", &f);
        fp = fopen("档案.txt", "r+");
        if (fp == NULL)
        {
            puts("wrong");
        }
        else
        {
            for (int i = 0; i < 20; i++) {
                fscanf(fp, "%d %s %d %d %d %d %d %d", &a1, line, &a3, &a4, &a5, &a6, &a7, &a8);
                if (a1 == f) {
                    ?????
                }
            }
          }
运行结果及报错内容

21 mm 1 1 1 1 1 1
22 das 1 1 1 1 1 1
这是文件内容,每行第一个数字为商品编号,代码想实现,根据商品代码修改商品其他信息(后面那些数据)

我的解答思路和尝试过的方法
我想要达到的结果

fscanf(fp, "%d%s%d%d%d%d%d%d", &a1, line, &a3, &a4, &a5, &a6, &a7, &a8);