Eingabebestaetigung



  • Hallo ich haette da mal ne kleine frage!
    wie kann ich es bewerkstelligen, dass ich eine eingabezeile hab, und mit jedem tastendruck sprich mit jedem zusaetzlichen zeichen sich meine ergebnisanzeige dementsprechend aendert.

    eigentlich wuerd es mich interessieren, wie kann ich das betaetigen der return taste als eingabebestaetigung umgehen, so das im prinzip jede taste mir meine eingabe bestaetigt und quasi als enter taste fungiert.

    hoffe ich hab mich klar und verstaendlich ausgedrueckt, sodass mir jemand helfen kann.

    tia



  • int main()
    	{
    	const int n=200;
    	char a[n];
    	int i=0;
    
    	while (1)
    		{
    		if (kbhit())
    			a[i++%n]=getch();
    		};
    
    	return 0;
    	};
    


  • danke fuer das code-beispiel.
    aber leider funktioniert das nicht auf linux rechner.
    vielleicht sollte ich noch dazu erwaehnen ich habe eine linux FC4 umgebung





  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum Linux/Unix verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • nachdem sich das "problem" mit dem weglassen von return als eingabebestaetigung erledigt hat, habe ich jetzt ein weiteres kleines problem und zwar folgendes:

    mit diesem kleinen programm moechte ich eigentlich nichts anderes als meine eingabe unterhalb der eingabezeile einfach nocheinmal ausgegeben wird.
    das problem ist, das macht es nicht.
    innerhalb der schleife erfolgt keine ausgabe der funktion printscreen().
    erst wenn die schleife beendet wurde erfolgt die richtige ausgabe.

    und meine frage jetzt warum, was mach ich falsch?

    #include "ncurses.h"
    #include <iostream>
    using namespace std;
    
    char atmp[30];
    void clearscreen();
    void initscreen();
    void printscreen();
    int main(){
    	char a;	
    	int i = 0;	
    
    do{	
    	clearscreen();		
    	cout << "Eingabe:" << atmp;
    	initscreen();	
    	a = getch();					
    	endwin();		
            atmp[i] = a;		
    	i++;		
    }while(i < 10);
    clearscreen();
    cout << "===ende===" << endl;
    printscreen();	
    cout << "==========" << endl;
    
    return 0;
    }
    
    void printscreen(){			
    	printf("%s",atmp);	
    	cout << endl;
    	return;
    }
    
    void initscreen(){
    	initscr();
    	cbreak();
    	noecho();
    	nonl();
    	keypad(stdscr,TRUE);
    	return;
    }
    void clearscreen(){
    	cout << "\033[2J\n\n";
    	return;
    }
    

Anmelden zum Antworten