Datensatz von einem Bereich in einen anderen einfügen
-
Ist Deine Frage: "Datensatz von einem Bereich in einen anderen einfügen" damit erledigt?
Ich bezweifle das...
Bisher versteht nämlich niemand, was die Frage ist.
-
Bisher versteht nämlich niemand, was die Frage ist.
Nähmlich schreibt man mit h, meine Güte bist du dähmlich.
-
Im Grunde ist es ja egal ob man printf oder cout<< benutzt oder?
Das ganze ist ein Projekt für die Uni. Als Entwicklungstool benutzen wir Visual Studio 2012.
Ich wüsste nicht wie ich den Beitrag sonst nennen sollte.
Mein Problem ist einfach nur dass sobald ">10 Volt" gewählt wird, automatisch ein Eintrag im Fehlerspeicher-Menü entsteht.
-
also von 'void Menu5()' nach 'void Menu6()' sozusagen.
-
...
-
Aha Universität.
Wie ich Dich verstehe ist Dein Problem, dass Du nicht weisst, wie Du einen einzigen "Fehlerspeicher" an verschiedenen Stellen im Programm nutzen kannst.
Am einfachsten reichst Du den Fehlerspeicher dazu im Programm als Funktionsargument herum.Ich habe hier noch mal eine leicht abgewandelte Form meines Codes:
#include <iostream> #include <string> #include <vector> using failure = std::string; using failure_memory = std::vector<failure>; void add_blocking_failure(failure_memory& mem){ mem.push_back("Schiebemechanismus blockiert"); } void add_current_failure(failure_memory& mem){ mem.push_back("Spannung < 10V"); } void print(const failure_memory& mem){ if(mem.empty()) std::cout << "Keine Fehler.\n"; else{ std::cout << "Fehler:\n"; for(const auto& f : mem) std::cout << f << '\n'; } } void menu(){ std::cout << "0: Fehlerspeicher ausgeben\n" "1: Batteriespannung absenken\n" "2: Schiebemechanismus blockieren\n"; } int main(){ failure_memory failures; int c=0; menu(); while(c!=-1 && std::cin>>c){ switch(c){ default: c=-1; break; case 0: print(failures); break; case 1: add_current_failure(failures); break; case 2: add_blocking_failure(failures); break; } } }Oben bestimme ich erstmal, was mein Fehlerspeicher ist (Z. 5 und 6): ein
vectorvonfailures, wobeifailureseinfachestrings sind.
Im Hauptprogramm erstelle ich in Z. 34 einen Fehlerspeicher.
Es gibt dann drei Funktionen, die mit einem Fehlerspeicher arbeiten zweiadd_*_failure()und eineprint()Funktion.
Alle drei werden im Hauptprogramm aufgerufen und als Funktionsargument gebe ich immer den einen Fehlerspeicher mit, den ich in Z. 34 erstellt habe, d.h. alle drei Funktionen arbeiten mit ein und demselben Speicher.Funktionen solltest Du eigentlich schon kennen, eine Referenz für
std::vectorundstd::stringfindest Du hier: http://en.cppreference.com/w/Klar?
Eins noch: hampel nicht soviel mit der Ausgabe rum. Umlaute und Gedoens sind nice to have, lenken aber vom Wesentlichen ab.
-
zuerst mal dankeschön

aber ich bekomme beim debuggen die fehlernachrichtFehler 20 error C2065: 'failure': nichtdeklarierter Bezeichner
-
Dein Compiler nutzt offenbar kein C++11.
Schreib typedef std::string failure oder aktiviere C++11 Support.
-
radddyo schrieb:
Im Grunde ist es ja egal ob man printf oder cout<< benutzt oder?
Nein!
-
Durch das typedef bekomme ich jetzt nur noch 7 Fehler:
Fehler 1 error C2143: Syntaxfehler: Es fehlt ';' vor '=' Fehler 5 error C2143: Syntaxfehler: Es fehlt ';' vor '=' Fehler 4 error C2226: Syntaxfehler: Typ 'std::string' nicht erwartet c:\users\radyabo\documents\visual studio Fehler 3 error C2513: 'int': Keine Variable vor '=' deklariert Fehler 7 error C2513: 'int': Keine Variable vor '=' deklariert Fehler 2 error C2868: 'failure': Unzulässige Syntax für using-Deklaration; vollständiger Name erwartet Fehler 6 error C2868: 'failure_memory': Unzulässige Syntax für using-Deklaration; vollständiger Name erwartet
-
Das using brauchste dann mit typedef nicht mehr!