由于在C语言中,似乎不可能使用带字符(仅整数)的switch,所以我试图使用if函数发出一个简单的提示,问题是在扫描点之后,程序总是在此时崩溃puts("Confirmas que quieres borrar[s\\n]")或“您确定要删除它吗?”.

void borrar_peliculas(struct videoclub peliculas[30],int p) {
    char titulo_pelicula[30], resp_eliminar;
    int k = 0;

    puts("\a\nBorrador de peliculas");

    puts("\nDime el titulo de la pelicula a ser borrada\n");
    scanf("%30s", titulo_pelicula);

    for (k = 0;k < p ;k++) {

        if (strcmp(peliculas[k].nombre,titulo_pelicula) ==0 ) {

            puts("\nConfirmas que quieres borrar[s\\n]\n");
            fflush(stdin);
            scanf("%c", resp_eliminar);

            if(resp_eliminar=='s') {

                peliculas[k].id = 0;
                strcpy(peliculas[k].nombre," ");
                strcpy(peliculas[k].categoria," ");
                strcpy(peliculas[k].nom_actor," ");
                strcpy(peliculas[k].ape_actor," ");
                peliculas[k].nota = 0;

                break;

            }

            if(resp_eliminar=='n') {
                puts("\a\nSaliendo\n");
                break;
            }

        } else {
            puts("\nNo encontrado\n");
        }
    }
}

最佳答案

scanf接受指针。如果用scanf("%c", resp_eliminar);替换scanf("%c", &resp_eliminar);,它将起作用。

09-07 23:57