Hola buenas soy Edgar.
Estoy haciendo un programa en C con ncurses y el problema que tengo es que cuando llamo en el main a la funcion por ejemplo alta(f); no me muestra nada es decir que no me muestra el menu que deberia salir con los colores y tal. En cambio si los colores y los menus los pongo en el main si que me los muestra y no se el porque. A ver si me podeis ayudar.
Grácias de antemano!!!
Ahi dejo lo basico del codigo para que entendais el problema que tngo.
int main()
{
initscr();
etc etc
....
case 1: alta(f); //Llamo a la funcion alta.
break;
case 2: baixa_l(f);
break;
....etc
}//Cierro main
//Funcion ALTA:
void alta(char *fich)//Funcion alta.
{
FILE *f;
char codi[7];
alumne s;
long pos;
getchar();
initscr();
start_color();
init_pair(1,COLOR_WHITE,COLOR_BLACK);
init_pair(2,COLOR_GREEN,COLOR_WHITE);
bkgd(COLOR_PAIR(1));
attron(COLOR_PAIR(2));
do{
mvprintw(4,3,"Entra codi alumne:");
gets(codi);
if (strlen(codi)!=6) mvprintw(7,3,"Error: el codi es de 6 digits.");
}while ((strlen(codi)!=6) || codi_bo(codi)!=1);
if (buscar(fich,&s,&pos,codi,0))
{
mvprintw(8,3,"El alumne ja existeix !");
mostra_alumne(s);
}
else
{
strcpy(s.codi,codi);
printw("\nEntra nom: ");
gets(s.nom);
printw("\nEntra cognom: ");
gets(s.cog);
do{
printw("Entra nota: ");
scanw("%f",&s.nota);
}while(s.nota<0 || s.nota>10);
s.baixa=0;
f=fopen(fich,"ab");
fwrite(&s,sizeof(alumne),1,f);
fclose(f);
}
refresh();
getch();
endwin();
}