Wie geb ich mehrere Returnwerte aus?

rerl

Grünschnabel
Hallo,
ich bin noch ein wahrer Frischling in Sachen programmieren. Hoffe ihr könnt mir bei meinem Problem helfen. Folgendes: Ich will ein Programm schreiben, dass mir 2 Returnwerte liefert (no input -1, out of memory -2). Dachte mir, dass ich das mit #define machen könnte. Dann muss kontrolliert werden, ob bei no input text übergeben wurde und bei out of memory kein speicher mehr zur verfügung steht. Wie würde ich sowas am besten realisieren? Würds am liebsten mit so machen, dass ich zuerst mit #define die Returnwerte definiert (zb: #define NO_INPUT -1) und dann ne funktion schreib, die die unterschiedlichen CASES unterscheidet.

#define NO_INPUT -1
#define OUT_OF_MEMORY -2

int main (int return)
{
Switch (int return)
{
Case NO_INPUT: Vergleich ob eingabe
case OUT_OF MEMORY: schaun ob speicher aus is
}
}
werden so auch die notwendigen returnwerte übergeben?
 
Hallo,
sag mal, was machst du da eigentlich? Eine eigene Programmiersprache entwickeln? Wenn es C sein soll (was es nicht ist), so macht das Programm nichts. Übersetzen wird es sich nicht lassen.
1) Die Funktion main ist der Startpunkt des Programms und muss lauten:
Code:
int main(int argc, char** argv)
2) switch und case schreibt man klein.
3) bei switch (int return) muss das int entfernt werden.
4) es fehlen die break Anweisungen.
5) main() gibt immer eine Integer-Zahl ans Betriebssystem zurück.
Meinst du vielleicht sowas?
Code:
#include <iostream>
using namespace std;

// Beispielfunktion, die die Zahlen 0 und 10 "nicht mag".
int IrgendeineFunktion(int eingabe) {
  if (eingabe == 0)
    return -1;
  else if (eingabe == 10)
    return -2;

  return 0;   // alles ok
}

int main( int argc, char** argv ) {
  int zahl;  // Variable für Benutzereingabe anlegen
  cout << "Gib mal 'ne Zahl ein und dann <Enter>: ";
  cin >> zahl;

  // rufe eine Funktion auf, die -1 oder -2 zurückliefert
  int return_value = IrgendeineFunktion( zahl );

  // je nach return_value handeln
  switch (return_value) {
  case 0:
    cout << "alles okay" << endl;
    break;
  case -1:
    cout << "keine Eingabe"  << endl;
    break;
  case -2:
    cout << "kein Speicher" << endl;
    break;
  default:
    cout << "unbekannter Fehler" << endl;
  }

  return return_value;  // Rückgabewert ans Betriebssystem weiterleiten und Programm beenden.
}
 
Zuletzt bearbeitet:
Zurück