首页 > 解决方案 > 在 Switch 语句代码停止工作并且我无法输入后,我需要修改 Files 中的详细信息

问题描述

代码没有按预期工作,主要重点是通过文件进行修改,它在while循环期间停止并且没有输入,有人可以告诉我错误是什么吗?修改的概念也正确吗?

#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <conio.h>


void modify(){
    struct cust
{
    char ID[10];
    char name[25];
    char pnum[15];
    char bill[5];
    char IDn[10];
    char namen[25];
    char pnumn[15];
    char billn[5];
};
struct cust d1;
        struct cust d1;

        struct custnew
        {
            char IDn[10];
            char namen[25];
            char pnumn[15];
            char billn[5];
        };

        int a;
        a = 1;
        while (a == 1) {
            viewmod();
            char id[10];

            FILE *f, *fn;
            f = fopen("customer.txt", "r");
            fn = fopen("customertemp", "w");

            printf("Enter ID to be edited:");
            scanf("%s", &id);



            printf("Select option to be modified 1.ID  2.Name  3.P/No.  4.Bill  5.RETURN\n");

        int opt;
        scanf("%d", &opt);
        switch (opt)

        {
        case 1:
            while (!feof(f))
            {
                fscanf(f, "\nID : %s\tName : %s\tP/No. %s\tBill : %s \n ", &d1.ID, &d1.name, &d1.pnum, &d1.bill);
                if (strcmp(id, d1.ID)==0)
                {
                    printf("Enter New ID : ");//Repeats after entering
                    scanf("%s", &d1.IDn);
                    fprintf(fn, "\nID : %s\tName : %s\tP/No. %s\tBill : %s \n ", &d1.IDn, &d1.name, &d1.pnum, &d1.bill);

                }
                else
                {
                    fprintf(fn, "\nID : %s\tName : %s\tP/No. %s\tBill : %s \n ", &d1.ID, &d1.name, &d1.pnum, &d1.bill);
                }

            }
                fclose(f);
                fclose(fn);
                remove("customer.txt");
                rename("customertemp.txt", "customer.txt");

                break;//More switch statements didn't provide due to repetitiveness 
                Default : printf("");

                return;
}

我正在使用结构。上面的代码用于修改文件,它从结构中获取一个数组并对其进行更改编辑:现在它一直运行到新 ID,然后让我重复时间“输入新 ID”

标签: c

解决方案


推荐阅读