Draqun
Użytkownik
- Dołączył
- Sierpień 27, 2007
- Posty
- 67
Kod:
#include<ncurses.h>
#include<stdlib.h>
struct Menu
{
char function[7];
int option;
struct Menu *next;
};
struct Menu *first;
int menu()
{
FILE*menu;
menu=fopen("menu", "rt");
if(menu==NULL)
return 1;
struct Menu *new;
new=(struct Menu*)malloc(sizeof(struct Menu));
first=new;
while(!feof(menu))
{
fscanf(menu, "%s %i", new->function, &new->option);
struct Menu *temp;
temp=(struct Menu*)malloc(sizeof(struct Menu));
temp->next=NULL;
new->next=temp;
new=temp;
}
new->next=first;
return 0;
}
void printfmenu()
{
struct Menu *prt;
prt=(struct Menu*)malloc(sizeof(struct Menu));
while(prt==first)
{
prt=first;
printf("%s", prt->function);
prt=prt->next;
}
}
int main()
{
menu();
printfmenu();
return 0;
}
Już mówię do czego ma mi służyć powyższa funkcja. To co stworzyłem ma mi tworzyć w miarę dynamiczne Menu na listach. Wszystko co ma być w menu jest zależne od pliku menu.txt. Wygląda on mniej więcej tak.
Kod:
a 1
b 2
...
z 9999
Błędów kompilacji nie ma więc dość ciężko mi wyłapać błąd (a zapewne siedzi w tym fscanfie) program się wykonuje ale nic mi nie wyświetla.
Druga sprawa to to działanie funkcji getch(), która jest dla mnie dokładnie czarną magią
Trochę tam poczytałem w sieci ale jest kilka problemów. Otóż jak mam program funkcje
switch(getch())
case 'w': ;
case 's':;
Ale teraz mam problem ponieważ gdy np chce aby coś zostało przerwane przez ESC - to wtedy przerywają również klawisze funkcyjne lub jak zrobić, aby Kursorami skakać po menu.
Pozdrawiam.