int to char
-
Ich hab zwar durchs Forum schon gestöbert, aber kann mein Problem nicht lösen.
Ich kopier dieselbe Datei in einem Ordner. An dieser Kopie, soll aber eine User-ID angehängt werden.
Ich zeig euch erst mal das Programm, das kopieren kann:#include<iostream> using namespace std; int main() { system("pause"); cout<<"Neuer User"<<endl; system("copy user.txt userneu.txt"); system("pause"); return 0; }So, hier wird aus einer vorgegebenen Datei eine neue mit einem anderen Namen erstellt.
Aber ich will im Namen einen Integer haben, also die User-ID. Und da streikt es bei mir.
Also es sollte ca. so aussehen:int id=12345; system("copy user.txt user"+id+".txt);wie kann ich es lösen, dass z.B. --> user12345.txt ensteht?
-
Vielleicht so in der Art? Bin momentan nicht so fit in c++.
char cBuffer[50]; int id=12345; int iWrittenChars = sprintf(cBuffer, "copy user.txt user%d.txt", id); cBuffer[iWrittenChars] = '\0'; system(cBuffer);Da hat der Compiler sicher noch einiges zu meckern!?
-
Hallo zappelruebe,
verwende dazu einen std::stringstream:
// [cpp]-Tag erleichtert das Lesen von C++-Code ;-) #include <sstream> #include <string> //... int userId = 12345; std::string userFile = "user.txt"; std::stringstream newUserFile; newUserFile << "user" << userId << ".txt"; // ergibt "user12345.txt" std::stringstream copyCmd; copyCmd << "copy " << userFile << " " << newUserFile.str(); // --> "copy user.txt user12345.txt" system(copyCmd.str().c_str()); // mit str() erhält man ein std::string // mit c_str() erhält man einen C-String (char-Array) //...
-
oneill5000 schrieb:
Vielleicht so in der Art? Bin momentan nicht so fit in c++.
sprintf ist ja auch C und nicht C++

-
ich bin erstaunt
das funktioniert. Danke
-
Roger Wilco schrieb:
oneill5000 schrieb:
Vielleicht so in der Art? Bin momentan nicht so fit in c++.
sprintf ist ja auch C und nicht C++

Das sollte ja nicht das Problem sein, aber Recht hast du natürlich.
-
zappelruebe schrieb:
int id=12345; system("copy user.txt user"+id+".txt);wie kann ich es lösen, dass z.B. --> user12345.txt ensteht?
Such mal nach
stringstreamstring s; { stringstream ss; ss << "copy user.txt user" << id << ".txt"; ss.str().swap(s); } system(s.c_str());Gruß,
SP
-
oneill5000 schrieb:
Das sollte ja nicht das Problem sein, aber Recht hast du natürlich.
Ich wollte auch nur klugscheißen.

Die C++-Variante ist aber grundsätzlich sicherer.
-
also die erste Variante von oneill5000 funktioniert.
Ich werde auch mal die andere Variante testen
-
Mehr dazu findest Du hier:
http://magazin.c-plusplus.net/artikel/Ein- und Ausgabe in CPlusPlus - IO-Streams