Ausgabe std::vector<string> Aus
-
Ich möchte eine Ausgabe machen.
Dafür habe ich einen String vector. Jetzt kann man durch Eingabe einer Zahl die Ausgabe bestimmen.Nur wenn ich jetzt schreibe
cin>>index;
std::cout<<Aus[index]<<"\n";kommt eine Fehlermeldung
-
zeigmal mehr code
dann können wir dir bestimmt helfen, aber bitte nutze die code-tags
-
Das kann alles mögliche sein. Welche Fehlermeldung bringt er denn?
-
std::vector<string> AuswAus; void Auswahl() { AuswAus[0] = "0"; AuswAus[1] = "1"; AuswAus[2] = "2"; AuswAus[3] = "3"; AuswAus[4] = "4"; AuswAus[5] = "5"; AuswAus[6] = "6"; .... } in maun() { for(int i=0; i<=AuswAus.size(); i++) { std::cout<<AuswAus[i]<<"\n"; } std::cout<<endl; std::cout<<"Bitte geben Sie Ihre Auswahl ein: \n"; std::cin>>index; fflush(stdin); std::cout<<endl<<endl; std::cout<<"Sie haben die für diese Auswahl entschieden: \n"; std::cout<<AuswAus[index]<<"\n"; std::cin.get(); }Dabei lautet die Fehlermeldung wie folgt:
.... Binärer Operator '<<': Es konnte kein Operator gefunden werden, der einen rechtsseitigen Operanden vom Typ 'std::basic_string<_Elem,_Traits,_Ax>' akzeptiert (oder keine geeignete Konvertierung möglich)
-
naja zum einen wird deine funktion nirgends in der main aufgerufen das heißt, das dein vector ja gar nicht gefüllt ist. und zum zweiten kannst du vectoren meiner meinung nach nur mit push_back füllen also so hier
vector<string> meinvector; meinvector.push_back("Hallo");also mach doch die befüllung gleich in der main
-
Stimmt habe ich vergessen. Mein Fehler^^
Doch denoch ändert das nichts an der Ausgabe. Ich habe den Vector jetzt in meiner main() gefüllt. Auch mit push_back.
Doch keine Veränderung.
An sich müsste das doch klappen.
-
zeig nochmal alles her, wie es jetzt aussieht?
-
#include <iostream> #include <stdlib.h> #include <map> #include <string.h> #include <vector> using namespace std; std::vector<string> AuswAus; int index; int main() { AuswAus.push_back("0"); AuswAus.push_back("1"); AuswAus.push_back("2"); AuswAus.push_back("3"); AuswAus.push_back("4"); AuswAus.push_back("5"); AuswAus.push_back("6"); AuswAus.push_back("7"); AuswAus.push_back("8"); AuswAus.push_back("9"); AuswAus.push_back("10"); AuswAus.push_back("11"); AuswAus.push_back("12"); for(unsigned int i=0; i<AuswAus.size(); i++) { std::cout<<AuswAus[i]<<"\n"; } std::cout<<"Was möchten Sie tun?\n\n"; std::cout<<"Bitte geben Sie Ihre Auswahl ein: \n"; std::cin>>index; fflush(stdin); std::cout<<endl<<endl; std::cout<<"Sie haben sich für den folgenden Punkt entschieden\n"; std::cout<<AuswAus[index]<<endl<<endl; std::cin.get(); return(0); }
-
also bei mir läuft es anstandlos durch.Achja wenn du iostream und vector schon mit einbindest und dann noch using namespace std; schreibst, kannste dir die std:: vor cout und vector string sparen. und nochwas es heißt nicht mehr #include<string.h> sondern #include<string>
-
Einfach falscher Header ... <string> (nicht <string.h>, der Header entspricht <cstring>)