Die Funktion itoa

Biergamasda

Erfahrenes Mitglied
Hallo Leutz

Ich habe mir ein kleines Menü zusammengebastelt, das ich mit den Pfeiltasten steuern kann, ohne große include Dateien. Jedoch habe ich da ein kleines Problem

Ich zählen einen Counter mit, jenachdem, ob Pfeil hoch oder Pfeil runter gedrückt wurde, zähle ich Counter++ bzw Counter--, sollte ich auf -1 bzw ==MaxMenuePoints sein, setze ich den Counter auf Ende bzw Anfang

jetzt zum eigentlichen Problem
Wenn der Benutzer Enter drückt, komme ich aus der Schleife heraus und bin beim return.
Ich habe es so geproggt, dass beim letzten Menüpunkt (exit) ein char zeichen 'e' zurückgegeben wird. Ebenso möchte ich jetzt, jenachdem auf welchem Menüpunkt sich der CurrentCounter befindet, seinen Integer Wert (zB 1) als char zurückgeben.

Mein Problem liegt daran, dass 1. nicht weis wie ich die itoa funktion hier anwenden muss, und 2. weis ich nicht, wie ich die itoa Funktion auf 1 char beschränken kann

hoffe mir kann jemand helfen :)

MFG Masda
 
Hi!

Verwendung:

Code:
#include <iostream.h>
#include <stdlib.h>

void main(void)
{
    int zahl = 3;
    char ch_zahl[2];

    itoa(zahl, ch_zahl, 10);

    cout << "Zahl: " << zahl << "\t Char: " << ch_zahl;
}

Auf ein Zeichen beschränken - gar nicht!

itoa arbeitet nun mal mit ner Integer-Zahl und einem String - eigentlich sollte ja ein Array gleichbedeutend einem Pointer sein, aber mit nem Pointer hab ichs auch noch nicht zum laufen gebracht - heißt aber nicht, dass das nicht möglich wäre.

Speichers halt in nem String und zieh dir dann das erste Zeichen raus.

shutdown
 
so in der art hätte ich mir das ja auch gedacht, nur was macht man, wenn jetzt mehr als 9 Menüpunkte sind (auch wenns recht unwahrscheinlich ist)

wenn ich dann 10 habe, und das erste rausziehe bekomm ich ne 1 zurück und bin dann logischerweise im falschen Menü

MFG


ach ja, noch was
was bedeutet der 10er (letzer Parameter in itoa)
 
10 ist die Basis für die Umrechnung (könntest auch Dual oder Oktal oder was weiß ich in char darstellen)

Was dein anderes Problem angeht - is ne unsaubere Lösung, aber auf die Schnelle des einfachste:

Code:
switch(char_1)
{
    case 1: 
            switch(char_2)
            {
                   case 1: dothis; 
                               break;
                   .......
            }
            break;
     case 2: 
            switch(char_2)
            {
                    wie oben
            } 
            break;
   
}

Is verdammt unsauber, aber machbar. Ich bin mir sicher, wenn man ein wenig drüber nachdenkt, dann fällt einem was besseres ein.

Zur Not gibts dann auch atoi() , wobei ich jetzt nicht weiß, ob dir das was bringen würde (kommt auf deine weitere Verarbeitung drauf an)
 
hmm... erst mal danke für die Hilfe, jedoch ist mir gerade ein weiteres Problem an der Sache eingefallen.

sollte ich 11 in ein char schreiben funktioniert das sowieso nicht, da ein char genau 1 Zeichen beinhalten kann, wenn ich jetzt 11 da reinschreiben will, kann ich auch einen normalen int wert zurückgeben, welcher dann in dem char feld steht (is dann jedoch anders abzufragen)

Wenn ich dann mal dabei angelangt bin, dass ich wieder ein int so wie es ist in ein char schreibe bin ich genau da, wo ich angefangen habe, also lass ichs vorerst mal für 9 Menüpunkte ^^

MFG Masda
 
Ich versteh jetzt dein Problem nicht...

itoa arbeitet nun halt mal nur mit String-Arrays

Wo ist denn das Problem eins zu definieren und da dann deine Menüpunkte rauszuziehen
 
Noch eins:

Warum gibst du denn das 'e' überhaupt als Charakter zurück
Gib halt einfach den int-Wert des Charakter zurück und alles is in Butter.

von e isses glaub ich die 65

Funktionen:
int()
Bsp:
menue = int(char);

printf("%d", char);
 
Zurück