Hallo,
ich weiss, es ist noobhaft
nein, nicht wenn man sich wenigstens Mühe gibt und die Frage sinnvoll stellt. :-)
das Problem - ich muss ein char und zahl ODER zahl einlesen.
char wird dann zum multiplicator (d für 2 oder t für 3).
Also hast du Eingaben wie etwa
"t2" für triple-two
"d8" für double-eight
"d12" für double-twelve
Verstehe ich das soweit richtig? Gibt es noch weitere Präfixe?
Dann würde ich die gesamte Eingabe zunächst als String behandeln und dann selbst im Programm aufdröseln.
- scanf("%c%d", c, i);
Die Familie der scanf-Funktionen ist manchmal sehr zickig und anfällig gegen Fehler und Buffer Overflows; ich würde sie nicht empfehlen. Mit fgets() fährt man da meist besser.
Also zum Beispiel:
char input[MAXLEN]; // Puffer für Eingabestring
int multiplier = 0; // aus 'd' oder 't' abgeleitet
int number = 0; // Zahl nach 'd' oder 't'
int index = 0; // Index in Eingabestring
if (fgets(input, MAXLEN, stdin)) // liest maximal (MAXLEN-1) Zeichen
// plus abschließendes Nullbyte von stdin
{ switch (input[0]) // erstes Zeichen
{ case 'd':
multiplier = 2; // 'd' ergibt Multiplikator 2
index++; // Zeichen überspringen
break;
case 't':
multiplier = 3; // 't' ergibt Multiplikator 3
index++; // Zeichen überspringen
break;
default:
multiplier = 1; // alles andere ergibt 1 (Annahme)
break;
}
number = atoi(input+index); // restliche Eingabe als Zahl
number *= multiplier; // Multiplikator verrechnen
}
else // fgets() lieferte NULL
{ // FEHLER bei fgets() oder Eingabestring leer
}
So würde ich die Aufgabe jedenfalls angehen ...
So long,
Martin
F: Was ist schneller: Das Licht oder der Schall?
A: Offensichtlich der Schall. Wenn man den Fernseher einschaltet, kommt immer erst der Ton, und dann erst das Bild.