Lesen Sie einen string mit Leerzeichen in Fortran
Verwendung Lesen(Sternchen, asterisk) in Fortran scheint nicht zu funktionieren, wenn die Zeichenfolge ausgelesen und der Benutzer-Leerzeichen enthält.
Betrachten Sie den folgenden code:
character(Len = 1000) :: input = ' '
read(*,*) input
Wenn der Benutzer den string "Hallo, mein name ist John Doe", nur "Hallo" gespeichert werden input; alles nach dem Leerzeichen wird ignoriert. Meine Vermutung ist, dass der compiler davon aus, dass "Hallo" ist das erste argument, und dass "mein" ist das zweite, so zu erfassen, das heißt, wir müssten so etwas wie Lesen(,) input1, input2, input3... etc. Das problem bei diesem Ansatz ist, dass wir brauchen, um erstellen große Zeichen-arrays, die für jede Eingabe, und muss genau wissen, wie viele Wörter eingegeben werden. Gibt es eine Möglichkeit, um dieses?? Eine Funktion, die tatsächlich Lesen Sie den ganzen Satz, Leerzeichen und alle? Vielen Dank!
Du musst angemeldet sein, um einen Kommentar abzugeben.
... liest eine Zeile von text maximale Länge 100 (reicht für die meisten praktischen Zwecke) und schreiben Sie es zurück zu Ihnen. Ändern Sie nach Ihren wünschen.
Statt
read(*, *)
versuchenread(*, '(a)')
. Ich bin kein Fortran-Experte, aber das zweite argumentread
ist der Formatbezeichner (entspricht dem zweiten argument zusscanf
in C).*
es bedeutet Liste format, die Sie nicht wollen. Man kann auch sagena14
wenn Sie möchten, Lesen Sie 14 Zeichen als Zeichenkette, zum Beispiel.sscanf
in C. Es ist sehr ähnlich in gewisser Weise, aber es ist anders genug, dass ich in der Regel schauen Sie. Sie finden anständige übersichten hier oder hier.