Zahl eingeben und einer Variablen zuordnen mit getch?



  • Hallo!

    Ich will eine einstellige Zahl eingeben, diese soll einer variablen zugeordnet werden. ich will die eingegeben zahl nicht mehr mit return bestätigen.

    dazu hab iche in programm:

    int main(void)
    
    {
    
    printf("Bitte eine Zahl eingeben");
    
    char c = getch();
    
    a = c + 1;
    

    leider ist mein programm total dumm. Wenn ich eine Zahl eingebe, dann liest getch nur den ascii-code raus. ich will aber, dass wenn ich "2" eingebe, auch mit 2 gearbeitet wird.

    ich bin so wütend auf ansi-c 😡

    bitte helft mir, ich bin so dumm.



  • getch ist keine ANSI C Funktion. Aber getch liest dir offenbar ein Zeichen ein. Wenn du das in eine Zahl umwandeln willst, kannst du einfach folgenden Trick benutzen

    char c = '2';
    int i = c - '0';
    

    Und reg dich nicht so auf. Lies lieber ein vernünftiges Tutorial.



  • int zahl = c - '0';
    


  • irgendwie hilft mir das nicht, sry 😕

    Ich schreib hier mal das ganze programm rein:

    #include <stdio.h>
    #include <math.h>
    #include <conio.h>
    
    int main(void)
    
    {
    
    char c = getch();
    
    switch (c)
    
    {
    case 1: printf("1");
    
    	break;
    
    case 2: printf("1");
    
    			break;
    
    }
    
    	return 0;
    

    ich will, dass wenn ich 1 eintippe, auch 1 in der konsole erscheint.

    ich könnte das programm auch mit scanf f machen, aber ich will nicht immer mit return bestätigen. das ist zuuuu nervig. ich bin total traurig. 😞



  • patrick87 schrieb:

    irgendwie hilft mir das nicht, sry 😕

    Kein wunder, dass es dir nicht hilft, wenn du die Hilfestellung nicht nutzt. 🙄



  • Wie meine Vorredner schon schrieben:

    // könnte auch int sein
    char c = getch() - '0';
    


  • patrick87 schrieb:

    ich will, dass wenn ich 1 eintippe, auch 1 in der konsole erscheint.

    int main()
    {
    	int c = getche();
    	return 0;
    }
    

Anmelden zum Antworten