Ошибка дублирования значения регистра внутри переключателя в переключателе - PullRequest
0 голосов
/ 04 мая 2020

Я действительно не знаю, как решить проблему, поскольку, насколько мне известно, они находятся в двух разных случаях переключения. Если бы кто-нибудь мог мне объяснить, почему это не сработало, или альтернативу для переключения дел, которая могла бы работать более эффективно, это было бы очень признательно

if (StudentDB == NULL){
    printf("The file does not exist. Would you like to create one?\nY/N\n");
    scanf(" %c", &d);
    switch (d){
        case 'Y':
        case 'y':
            {
            StudentDB = fopen ("studentdb.txt", "w");
            printf("A new file has been created\n");
            if (unsaved==1)
            {
                printf("Would you like to save your unsaved student files to this document\nY/N\n");
                scanf(" %c", &e);
                switch (e)
                case 'Y':
                case 'y':
                    unsaved = 0;
                    while (printing < student_no){
                        printing++;
                        printf("A");
                        fprintf(StudentDB,"%s %s\t%d\t%d %d %d/t%.2f\n",
                        arr_student[printing].fname, arr_student[printing].sname, arr_student[printing].UP_no, arr_student[printing].marks_1,
                        arr_student[printing].marks_2, arr_student[printing].marks_3, arr_student[printing].average_mark);
                        }
                    fclose(StudentDB);
                    printf("saved");
                    break;
                case 'N':
                case 'n':
                    break;
            }
        }
    case 'N':
    case 'n':
        printf("Returning to menu");
        delay(1);
        break;
    }

1 Ответ

0 голосов
/ 04 мая 2020

Вы пропустили фигурные скобки. Для одного утверждения вы можете или не можете поставить фигурные скобки. Но для нескольких утверждений вы обязательно должны поставить фигурные скобки. Если вы не ставите фигурные скобки, то только та строка, которая находится сразу после оператора switch, переходит под switch, следующая строка не считается находящейся в switch.

...