由于在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);
,它将起作用。