drigend:eingabe in C

Von: , Frage gestellt am Mo, 11. Jun 2001

hallo
ich möchtein ein C programe einen auftrag zb + 2 3 in einer zeile in ms dos fenster eingeben und dann die summe von 2 und 3 wieder ausgeben
soll ich das auftrag in zeichenkette speichern?
aber wie kann ich die char in int konvertieren und auch ein problem habe ich wenn ich ein 2zählige integer nimmt die ganze integer als char oder jede zahl als char
*****************
char string[10];
printf("auftrag:");
gets(string);//speichet das auftrag + 2 3 in string
printf("%d",vek[2]+vek[4])//weil der 2 ist dritte element von string und 3 ist fünfte element von string
kann mir jemand helfen.

3 Antworten zu dieser Frage

  1. Antwort von nach 49 Minuten 0 hilfreich
    Re: drigend:eingabe in C

    Hallo

    Scha dir mal die Funktion "scanf()" an. Sie ist das Gegestück zu printf(). ich möchtein ein C programe einen auftrag zb + 2 3 in
    einer zeile in ms dos fenster eingeben und dann die summe von
    2 und 3 wieder ausgeben
    soll ich das auftrag in zeichenkette speichern?
    aber wie kann ich die char in int konvertieren und auch ein
    problem habe ich wenn ich ein 2zählige integer nimmt die ganze
    integer als char oder jede zahl als char
    MfG Peter(TOO)

  2. Antwort von nach einer Stunde 1 hilfreich
    Re: drigend:eingabe in C

    char string[10];
    printf("auftrag:");
    gets(string);//speichet das auftrag + 2 3 in string
    printf("%d",vek[2]+vek[4])//weil der 2 ist dritte element von
    string und 3 ist fünfte element von string
    kann mir jemand helfen.
    Hallo!!!
    Soll das eine einfache ein und ausgabe Aufgabe sein!?

    z.B.
    Ausgabe auftrag

    eingabe 2+3

    ausgabe 5

    ?

    Sollte dies sein melde dich dan bekommst du die Lösung.

  3. Antwort von nach 18 Stunden 1 hilfreich
    Re: drigend:eingabe in C

    Hi youssef :) soll ich das auftrag in zeichenkette speichern?
    Kann man so machen :) aber wie kann ich die char in int konvertieren
    Das brauchst du nicht. Bei Berechnungen mit Operanden werden alle Datentypen, die kleiner als int sind, automatisch in int umgewandelt. Das gilt also für: char, signed char, unsigned char, short int und unsigned short int. Da kannst du nichts gegen machen, das ist einfach so! Daher geben gute Compiler bei Berechnungen wie z.B.

    char a=0,b='z',c='B';
    a= b+c;
    

    eine Warnung aus, denn b und c werden in int umgewandelt, so dass das Ergebnis der Addition den Typ int hat. Dieses int soll nun einem char zugewiesen werden ... und auch ein
    problem habe ich wenn ich ein 2zählige integer nimmt die ganze
    integer als char oder jede zahl als char
    Bei der automatischen Typumwandlung wird der ASCII-Code des char als Wert für das int genommen. Wenn du also das char '2' in ein int umgewandelt wird, hat dieses int den Wert 50 (ASCII-Code von '2'). Wenn dein int den Wert 2 haben soll, musst du den ASCII-Code von '0' (=48) abziehen, also so:
    int value = '2' - '0';
    

    Damit kannst du dein Problem lösen:
    char string[10];
    printf ("auftrag:");
    gets (string);    //speichet das auftrag + 2 3 in string
    printf("%d", (vek[2]-'0') + (vek[4]-'0') )
    

    Viele Grüße

    Stefan.

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!