如何使用文件处理自动递增数字

时间:2016-09-28 17:23:15

标签: c

            printf("\nID #: %d",counter++);
            fflush(stdin);
            printf("\nEnter Menu Name: ");
            scanf("%[^\n]s",&menus.name);
            fflush(stdin);
            printf("Enter what the menu made of (pork,beef,chicken): ");
            fflush(stdin);
            scanf("%[^\n]s",&menus.make);
            printf("Number of Servings: ");
            fflush(stdin);
            scanf("%d",&menus.numserve);
            fflush(stdin);
            printf("Price: ");
            scanf("%f",&menus.price);
            fflush(stdin);
            fwrite(&menus, 1, sizeof(menus), fp);
            numofentrees--;

我的问题是我想自动生成我的ID#所以我增加它,然后我希望我的文件处理读取最后一个数字例如我希望输入2条记录然后我的ID号应该生成1和2然后我填写我希望再次生成记录的记录,然后我的下一个ID号码应为3,但在我的程序中,它将再次返回ID#1。有人可以向我解释,谢谢。我正在使用C语言

1 个答案:

答案 0 :(得分:0)

在您的pastebin中,行int counter=1;定义了一个局部变量,其生命周期仅在函数调用期间。在下次通话时,它再次初始化为1。您可以将其定义为static int counter = 1; ...                      - 风向标