zwei char-variablen als ein parameter
-
hi
ich habe folgendes problem:
mein programm soll eine datei aus einem zip-archiv entpacken. dafür habe ich eine funktion die als parameter "dateiname@zip-archiv.zip" bekommt. das ganze ist ein konsolenprojekt und der benutzer soll nun die daten eingeben können. alsochar cArchiv[100]; char cDatei[100]; cout << "Archiv: "; cin >> cArchiv; cout << "Datei: "; cin >> cDatei;aber wie übergebe ich das nun der funktion?
mit php ging das einfach
funktion(cDatei"."@"."cArchiv);mit c++ ist das irgendwie nicht so einfach. hab schon rumprobiert, aber irgendwie will es nicht. ich hoffe ihr könnt mir helfen.
-
char cTogether[201]; wsprintf (cTogether, "%s@%s", cDatei, cArchiv);Mfg Ominion
-
Hallo
oder besser gleich die richtigen C++ Mittel wie std::string benutzen, dann kann man auch ganz einfach aneinanderhängen.
bis bald
akari
-
hi
danke für die antworten, allerdings bekomme ich bei
wsprintf (cTogether, "%s@%s", cDatei, cArchiv);
die fehlermeldung: error C2664: 'wsprintfW': Konvertierung des Parameters 1 von 'char [201]' in 'LPWSTR' nicht möglich...
mfg
fabi
-
// UNICODE wchar_t waTogether[201]; wsnprintf(cTogether, 200, "%s@%s", cDatei, cArchiv); // !UNICODE char caTogether[201]; snprintf(cTogether, 200, "%s@%s", cDatei, cArchiv);So und in anständiger C++ Manier sieht das wie folgt aus:
std::cout << "Archiv: " << std::flush; std::string archiv; std::getline(std::cin, archiv); std::cout << "Datei: " << std::flush; std::string file; std::getline(std::cin, file); file += "@"; file += archiv;
-
mit den char variablen funktioniert das zwar immer noch nicht, aber egal.
strings gehen, allerdings müsste ich den letzten string dann als char der funktion übergeben.
mit Dateiname.c_str() läuft es nicht, weil keine konvertierung von const char in char * möglich ist.
auch den anders irgendwie zu casten, will nicht.
wie ist das nun möglich?
-
Hallo
Den Autor der unbekannten Funktion dazu zwingen sich über Const-Correctness gedanken zu machen

Alternativ kannst du auch den const_cast verwenden, um das Rückgabeergebnis von c_str() "freizuschalten". Benutzung natürlich auf eigene Gefahr.bis bald
akari