2016-04-26 6 views
0

In einer einfachen Testroutine schreibe ich momentan in Fortran90, die Stringausgabe ist länger als der Bildschirm. Wenn Sie die Standard-Anweisung write (,) verwenden, wird die Ausgabe in der Zeile Anstatt eine neue Zeile hinzuzufügen und in der nächsten Zeile fortzufahren, wird ein zweiter Zeilenumbruch hinzugefügt, bevor die Ausgabe fortgesetzt wird.Fortran write insert 2 newlines w

Beispielcode:

write(*,*) "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" 

Intel von Visual Fortran Composer XE 2013 SP1 Ausgabe:

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 

Warum das so ist? Woher kommt diese zusätzliche Newline?

Antwort

0

Durch die Verwendung von Liste gerichteten Ausgang, mit dem Sie auf die Erklärung write mit dem zweiten * in den Argumenten tun, übergeben Sie eine präzise Steuerung der Ausgabe an den Launen Autoren der Compiler die Formatierung. Ergreifen Sie die Kontrolle mit einem bestimmten Format, etwa write(*,'(a128)') (Ersetzen von 128 mit dem, was für die Länge der Zeichenfolge, die Sie schreiben möchten, geeignet ist). Sieh was dann passiert.

Es könnte amüsieren Sie zu lernen, die repeat Funktion für, gut, sich wiederholende Zeichenfolgen zu verwenden.

+0

Dies war nur ein Beispielcode, um die Fragen zu vereinfachen, da der zugrunde liegende Code der Routine für die Fragestellung etwas zu kompliziert war. In der Tat war dies das Problem. Dachte nicht, dass die list-gesteuerte Ausgabe solche seltsamen Dinge tun könnte, wenn sie nicht kontrolliert werden. Ich werde das in Zukunft vermeiden. Vielen Dank! – Odeul