Hallo erstmal,
Ich hab mich grad mal mit der curses.h beschäftigt komm aber nicht weiter weil ich nicht weis wie man darbei eine zahl in einer Variable speichert.
Also wie:
cin >> Variable;
Also wenn jemand weis wie das geht oder nen tutorials zur curses.h hatt meldet euch.
MFG
Locai:cool:
ContainerDriver
08-09-2003, 13:40
Such mal auf deinem System nach einem Verzeichnis howto, da sollte ein ncurses-Tutorial zu finden sein (in englisch).
MfG
DanDanger
09-09-2003, 16:14
Hallo,
da gibt es Mehrere Möglichkeiten.
1. Du benutzt getchar (das funzt auch unter Curses)
char c ;
c = getch() ;
Das ist z.B nützlich, Wenn Du auf einzelne Tastendrücke (z.B die ESC-Taste, die Pfeil-Tasten, etc.) reagieren möchtest. Sehr nützlich für Menüs, etc.
Wenn du ganze Strings (oder Zahlen) einlesen möchtest, nimmst du am
besten eine Eingabemaske :
#include <curses.h>
struct titel
{
int x, y ;
char *ttext ;
} tzeile = {1, 3, " Geben Sie BitteIhren Vor-und Nachnamen ein.
ESC = Ende, RETURN = Neue Eingabe. "} ;
stuct maske
{
int x1, y1 ;
char * strl ;
int xe, ye, maxe, cnte ;
char stre[41] ;
}
masklist[]=
{
{3, 5, "Vorname:" , 3, 16, 15, 0, ""},
{5, 5, "Nachname:", 5, 13, 15, 0, ""} ;
} ;
/* So, das war's. Nun kannst du mit den Masken ein wenig herumspielen */
/* z.B. Namen ein - und Ausgeben */
int main(int argc, char *argv[])
{
/* Cursor auf Eingabebereich Setzen */
int i = 0 ;
char c ;
/* Curses Initialisieren */
initscr() ;
move(masklist[i].ye, masklist[i].xe) ;
refresh() ;
/* Zeichen einlesen : getch() */
c = getch() ;
if(masklist[i].cnte < masklist[i].maxe && c >= 32)
{
(masklist[i].stre)[masklist[i].cnte] = c ;
masklist[i].cnte++ ;
}
/* Hier : Zeichen Ausgeben, ueber Addstr-Funktion */
clear() ;
mvaddstr(tzeile.y, tzeile.x, tzeile.ttext) ;
for (i=0; i<2; i++)
{
mvaddstr(masklist[i].y1, masklist[i].x1, masklist[i].stre) ;
refresh() ;
}
/* ...... */
/* Curses De-Initialisieren */
endwin() ;
return 0 ;
}
Kompilieren lässt sich das ganze mit : "gcc -o datei.o datei.c -lncurses"
Zum Einlesen gibt es Ausserdem noch folgende Funktionen (einfach mal die Man-Pages Wälzen) :
inch() : Zeichen an Cursor-Position Lesen ;
getstr(Zeichenkette) : Zeichenkette aus dem Tastaturpuffer Lesen ;
scanw() : Im Prinzip wie scanf() ;
Zum Schreiben (Ausgabe) gibts z.B. folgende Funktionen) :
addstr(Zeichenkette) : Zeichenkette schreiben ;
addch(Zeichen) : Zeichen Schreiben ;
mvaddstr(x, y, Zeichenkette) : Zeichenkette an der Position x, y Schreiben ;
Nicht Vergessen, nach jeder Schreiboperation die änderung mit refresh() sichtbar zu machen.
Ich hoffe, das konnte ein wenig Helfen.......
Gruss
DanDanger
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.