coolkaiserabc
Goto Top

C++ String in Funktion

Hallo Ich würde gern eine Funktion schreiben die mir einen string "wert" setzt. So hab ich es geschrieben (sieh unten). Leider funktioniert es nicht was mach ich falsch?
(Alles was ich in C++ gelernt habe habe ich selbst erlesen, daher bitte nicht haten wenn ich etwas sehr offensichtliches nicht verstehe. Ich versuch im Moment es mir selbst zu erlernen )

#include <iostream>
using namespace std;

string feld(int x)
{
	string y = 0;

	switch(x)
	{
	case 1:
	y = "Test";  
	break;

	case 2:
	y = "Test 2";  
	break;

	default:
	y = "Error";  
	break;

	}
	return y;
}

int main()
{
	int x= 0;
	string z = "0";    // Wurde nachträglich nach 1.Antowrt EDITIERT  

	cin >> x;

	z = feld(x);     // Wurde nachträglich nach 1.Antowrt EDITIERT
	cout << z;
}

beim compilieren gibt es kein Problem, aber beim ausführen sieh Bild
cpp fehler

Bin über jede konstruktive Hilfe sehr dankbar (=

Content-ID: 364768

Url: https://administrator.de/contentid/364768

Ausgedruckt am: 24.11.2024 um 23:11 Uhr

emeriks
emeriks 14.02.2018 aktualisiert um 14:21:20 Uhr
Goto Top
Hi,
bin jetzt kein C++ Experte, aber spontan würde ich sagen ist der Fehler im
feld(x) = z;
Statt dessen
z = feld(x);

E.

Edit:
Und würde eine String-Variable auch explizit mit einem String initialisieren, also nicht z = 0 sondern z = "0".
coolkaiserABC
coolkaiserABC 14.02.2018 aktualisiert um 14:28:16 Uhr
Goto Top
OMG ist das offensichtlich falsch von mir xDDDD (hab es jetzt im CODE oben geändert)

aber leider auch ausgebessert funktioniert es nicht, ich kann zwar jetzt die Zahlen eingeben aber leider kommt die selbe Fehlermeldung wie auf dem Bild .... wo kann da der Fehler liegen?
emeriks
Lösung emeriks 14.02.2018 um 14:26:52 Uhr
Goto Top
Mach mal
string y = "0";
statt
string y = 0;
emeriks
Lösung emeriks 14.02.2018 um 14:28:16 Uhr
Goto Top
Ansonsten die Fehlermeldung einfach bei Google eingeben:
_s_construct null not valid
coolkaiserABC
coolkaiserABC 14.02.2018 um 14:29:33 Uhr
Goto Top
Danke.... das wars....

Herzlichen Dank für deine Hilfe
Arano
Arano 14.02.2018 aktualisiert um 21:20:18 Uhr
Goto Top
Hallo,

Ich bin auch weit von dem Experten weg aber hier war mir so also ob...
Und würde eine String-Variable auch explizit mit einem String initialisieren, also nicht z = 0 sondern z = "0".
"string" ist hier ja KEIN Standard-Datentyp (char/int/bool) sondern eine Klasse, eine Klasse die intern char#s verarbeitet.
C++-Reference - String
default (1) string();
...
(1) empty string constructor (default constructor)
Constructs an empty string, with a length of zero characters.
Durch den Konstruktor der Klasse, muss (in diesem Fall) also keine Zeichenkette zur Initialisierung übergeben werden, weil die Klasse "sich selber" mit "leer" initialisieren kann.

// vim: set ts=4:
#include <iostream>
#include <string>

int main( void )
{
        //std::string t("Administrator.de"); 
        //std::string t = Administrator.de"; 
        std::string t;
        // t = "Administrator.de"; 
        std::cout << t.length() << " " << t << << "." << std::endl;  
        // Ausgabe: "0 ." 

        return 0;
}


Und deine Lösung war ?
Das Vergessen das Headerfile zu inkluden !?
#include <string>


~Arano
coolkaiserABC
coolkaiserABC 27.06.2018 um 09:32:49 Uhr
Goto Top
nein die " Gänsefüßchen ...... ich schäme mich eh schon...