Wie kann man Variablen (Zeichenketten) in C++ einfügen?

...komplette Frage anzeigen

3 Antworten

#include <string.h>
#include <iostream>

int main(int argc, char *argv[]) {
    std::string path;
    path.append("C:\\Users\\");
    path.append(Benutzername);
    path.append(""\\Documents\\Command & Conquer Generäle Stunde Null Data\\SkirmishStats.ini");
}

Weiß nicht ob es die optimale Lösung ist, aber ich denke es sollte so funktionieren. Kann es jedoch gerade nicht testen.

Lillyman 05.04.2011, 13:19

Und wie heißt dann der String, den ich in andere Funktionen einsetzen kann?

0
Lillyman 05.04.2011, 13:22
@Lillyman

Und als Fehlermeldung kommt: 'str' was not declared in this scope.

Die 2 Header von oben hab ich eingesetzt.

0
Sucellus 05.04.2011, 13:30
@Lillyman

Jow, hab mich vorhin vertippt. Das müsste path heißen. Außerdem ist Benutzername nicht definiert. Soll ja auch nur als Beispiel dienen..

0
Lillyman 05.04.2011, 14:00
@Sucellus

Mein Programm(beispiel):

#include <iostream>
#include <string.h>
using namespace std;
char path[120];
char Benutzername[20];
void Dateipfad(char Pfad_1[50], char Pfad_2[50])
{
      std::string path;
      path.append(Pfad_1);
      path.append(Benutzername);
      path.append(Pfad_2);
}
main()
{
strcpy (Benutzername, "blabla");
Dateipfad("C:\\Users\\", "Documents\\Command & Conquer Generäle Stunde Null Data\\SkirmishStats.ini");
cout << "\n\n\n" << path << "\n\n\n";
}

 

Wenn ich es aufrufe, kommt dieser Fehler:

C:\Users\Benutzername\Desktop\test.cpp|28|warning: deprecated conversion from string constant to 'char*'|

0

Was du falsch machst? Du missbrauchst die C++ Syntax. Wo hast du denn gelernt, dass << ein String-Verbindungsoperator ist?

Geht ziemlich einfach:

std::string("string1").append(string_variable).append("string2")

Es gibt sogar einen +-Operator, habe ich jetzt aber nicht ausprobiert.

 

Lillyman 06.04.2011, 20:49

Und was bedeutet in deinem Satz "string" und was ist die Variable, die herauskkommt?

0

char pfadArray[] = { "Pfad", Benutzername, "Pfad2" };

eingabe.open(pfadArray, ios:base::in);

oder so ähnlich. Bin jetzt grad nicht voll drin, hoffe es hilft! Bin mir auch nicht sicher ob der das Array so einließt, ansonsten mit ner Schleife.

Lillyman 05.04.2011, 13:02

Also geht das nur über Umwege?

0
Bujin 05.04.2011, 13:06
@Lillyman

Es gibt sicher andere bessere Wege, aber ich bin auch nur Einsteiger^^ Es spricht aber nichts dagegen den Pfad zwischenzuspeichern. Sowas wir laufend gemacht, vielleicht brauchst du ihn ja mehrmals! Bin mir nicht sicher aber es müsste auch mit dynamischen Arrays gehen (vector).

0
gfuser9283 05.04.2011, 16:12
@Sucellus

Hat nichts mit C++ zu tun, sondern mit eigenem Wissen ;)

0
Sucellus 06.04.2011, 23:25
@gfuser9283

Das mag gut sein, aber C++ ist doch gerade zu Beginn ein harter Brocken. Die Pointer, und das ständige rumallozieren kann einem die Arbeit schon sehr schwer machen.

0

Was möchtest Du wissen?