IceMatrix schrieb:
wasn das für ne komische diskussion hier? einer hat weniger ahnung als der nächste... unter c/c++ ist hier ganz eindeutig sprintf bzw. snprintf zu nutzen. alles andere ist dünnschiss.
Eigentlich hatte ich keine Lust mich an diesem Thread zu beteiligen, zumal schon richtige Lösungen vorhanden sind. Aber das schlägt dem Fass doch mal den Boden aus. Möchtest du dich in deine Reihe der Ahnungslosen vielleicht selbst einreihen?
1. C und C++ sind zwei verschiedene Sprachen - eine ganz eindeutige Empfehlung der printf-Familie und dann auch noch für beide Sprachen ist irgendwie etwas fragwürdig.
2. Der OP hat nicht herausgestellt was er mit einem String meint - einen NTBS (null-terminated byte string) oder die Klasse std::string, daher kann wohl kaum s(n)printf als ultima ratio empfohlen werden
3. printf und Konsorten haben in C++ mehr oder minder ausgedient. ostreams, insbesondere Stringstreams sind eine wesentlich mächtigere und sicherere Ersetzung (siehe Lösung von 1668mib):
- typsicher, und das zur Compilezeit
- erweiterbar und können mit Non-POD-Typen umgehen (schonmal Non-PODs durch eine Ellipse übergeben?)
- sollten durch Typkenntnis zur Compilezeit schneller sein können, auch wenn sie das in der Regel trotzdem nicht sind
- automatisches Speichermanagement nimmt Arbeit ab und schließt Fehlerquellen aus
- sicher gegen Pufferüberläufe bei gleichzeitigem dynamischem Wachstum
- das Ergebnis kann immernoch in einen NTBS kopiert werden und somit nicht auf std::string beschränkt