Ich möchte gerne zwischen formatierter und unformatierter Ausgabe wechseln können. Aber für die write
und read
Anweisungen gibt es, soweit ich weiß, keinen Format-Bezeichner für unformatierte Ausgaben --- nur die Option, den Bezeichner zu entfernen. Muss ich eine if
-Statement auf jeder read
und write
verwenden, um diese Flexibilität zu erreichen, oder gibt es einen besseren Weg um dies zu erreichen?Wie erreicht man einen "unformatierten" Formatbezeichner in Schreib-/Leseanweisungen?
Antwort
Unformatierte und formatierte E/A ist so unterschiedlich, dass Sie nur zwei Versionen Ihrer Unterprogramme oder ein großes if
haben können. Vor allem, wenn Sie viele read
und write
Aussagen haben.
Wenn Sie bereits den C-Präprozessor verwenden, könnten Sie auch ein Makro für das Schreiben definieren und eine Include-Datei verwenden, um Code-Duplikation zu vermeiden, aber ich würde es nicht nur für diesen Zweck einführen.
Wenn Sie eigentlich formatiert und unformatiert in einer einzigen Datei mischen wollten, könnten Sie unformatierten Stream-Zugriff verwenden und Zeichenketten dort in den "formatierten" Teilen speichern. Oder schließen Sie, öffnen Sie erneut mit position="append"
und ändern Sie Ihre form=
.
Ich hatte nicht die Absicht, sie zu mischen. In meinem Fall ist der Code außerhalb einiger weniger Lese-/Schreibanweisungen im Wesentlichen unverändert. Es ist hauptsächlich eine Frage der Geschwindigkeit gegenüber der Kompatibilität. If-Statements müssen den Job erledigen. –
Sie sollten keine Tags in den Fragetitel einfügen, wenn es kein natürlicher Teil davon ist http://meta.stackexchange.com/questions/19190/should-questions-include-tags-in-their-titles –