C++, bezüglich fprintf und ofstream
Habe ich mit fprintf
für eine Weile jetzt, und ich möchte eine Frage stellen. Was ist das äquivalent von diesem fprintf
Linie:
fprintf(OutputFile, "%s", "SomeStringValue");
mit ofstream
?
Verwendung der "%s" in ofstream
ist, was ich wirklich gerne wissen. Wie man das nächste argument und drucken Sie es als ein string?
So etwas wie
das hat nichts zu tun mit
Wenn Sie wirklich brauchen, zu fallen, wieder auf nicht-triviale printf-style-strings verwenden, können Sie
Eigentlich sollte man verwenden
Ist das mischen von C-style
os << "SomeStringValue";
, wo os
ist ein richtig geöffnet std::ofstream
.das hat nichts zu tun mit
string
's in Erwägung ziehen, dass tag.Wenn Sie wirklich brauchen, zu fallen, wieder auf nicht-triviale printf-style-strings verwenden, können Sie
snprintf
zu erstellen Sie die Zeichenfolge, und dann Ausgabe, die es auf dem stream.Eigentlich sollte man verwenden
fprintf(OutputFile, "SomeStringValue");
statt dein Ansatz, wenn der gesamte format-string ist "%s"
oder, besser noch, fputs("SomeStringValue", OuputFile);
als dies vermeidet das Parsen der Zeichenfolge für Formatbezeichner.Ist das mischen von C-style
FILE
streams und C++ - I/O-streams bieten garantiert konsistente Ausgabe?InformationsquelleAutor aresz | 2013-08-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie es nicht verwenden.
Der Gegenwert ist im wesentlichen:
Gehen, Lesen Sie über es auf verschiedene Referenz-Seiten. Wie http://www.cplusplus.com/reference/ostream/ostream/operator%3C%3C/
InformationsquelleAutor UpAndAdam
Können Sie nicht. Sie schreiben einfach den string in den stream.
Wenn Sie meinen, Sie wollen einige zusätzliche Formatierungen auf die Zeichenkette (wie Rechtsbündig mit Leerzeichen Auffüllen), dann können Sie die I/O-Manipulatoren
setfill(' ')
(legen Sie die Füllung Zeichen das Leerzeichen) undsetw(length)
(Einstellung der Breite der Ausgabe). Wenn Sie etwas wollen, das imitiert die syntax der C-format-Zeichenfolgen, die Sie verwenden können,Boost.format.InformationsquelleAutor jxh