-
如何在 Fortran 中讀取和寫入沒有換行符的檔案? 這是乙個非常簡單而複雜的問題,簡單到只需要乙個字元,複雜到你在幾本語法書中都找不到它。 預設情況下,fortran 中的讀取或寫入將在結束後更改為新行,但讀取和寫入之間存在一些差異。
讀取檔案時,如果在讀取後寫入陣列,則如下所示:
read(10,*)y(1:n)
將一整行數字讀入陣列中。 但是如果你使用write,你不會寫這樣的檔案,它會給你乙個超長的檔案,每行只有乙個數字。 有乙個選項叫做 advance='yes'/'no',可以控制是否在輸入和輸出語句完成後換行,這是預設設定'yes'不幸的是,在英特爾的 Fortran 中,此選項僅適用於讀取,寫入仍然不適用於。
在 fortran 的輸入和輸出中,"/"表示換行符,然後"\"這是什麼意思,它是“無換行符”。 這是我在網上逛了很久後看到的,為了防止遺忘,我把它寫在了我的部落格上,拍了這張照片。
下面以 fortran** 為例,如果有 20 個數字,需要處理的資料會改成不同的一行,一般來說最後一行少於 20 個數字,需要用全餘來判斷。
如何在 Fortran 中讀取和寫入沒有換行符的檔案?
2010-12-18 10:21:00|分類: Fortran |報告|字型大小訂閱。
**ifelseif 部落格。
-
很簡單,例如你給出的陣列 a=( 5,6,7,8,9 )write(*,"(5i2)")a
注意你的陣列在這 5 個中有多少個元素,這就是有多少個。
-
你能把你的問題說得更清楚一點嗎?
我使用直接寫入(*,a
輸出的結果沒有換行符。
也許是編譯器問題。
然後你寫(*,"(5i2)")a
-
在 format 語句的末尾新增斜槓"\"可以實現沒有自動換行。
例如:a=b=c=
write(*,100)a
write(*,100)b
write(*,100)c
100 format(1x,end
-
例如,fortran 中的 “ ” 表示換行符。
program main
integer:: a=5,b=6
write(*,"(i3,/,i3)") a,bend program main
在 Fortran 中,wirte 語句的內容通常寫在一行上。 如果要在不同的行上輸入,也可以將其與do組合使用。
-
使用 write once 必須是換行符。
如果你的意思是你不能在一行上寫出你想輸出的語句,你可以使用乙個延續符號&,如write(*,'lelrwrkdkas dfsfs df &dsfdsfd sfdsffds fsd fs sdf'
-
將這五個數字儲存到乙個陣列中,並一次輸出陣列而不換行。
-
斜槓 ( ) 的用途是結束此行中記錄的輸出,並從下一行開始下一條記錄的輸出。 如果有兩個連續的斜槓,則相當於新增乙個空行輸出。 如果字元末尾出現斜槓,則輸出另乙個空行。
使用n個連續斜槓,可以達到輸出n-1個空行的效果。 例如,write(*,i3,i4 i1,i2,j,m,n,x,y,z 輸出第一行是 i,j 的值,第二行是 m,n 的值,第三行是空白的,第四行是 x,y,z 的值,第五行是空白的。
-
反斜槓 ( ) 字元和美元 ($) 字元具有相同的用途,兩者都在輸出記錄行後取消回車符。 當輸出字串與螢幕上的輸入資料顯示在同一行上時,通常使用它。
示例:write(*,請輸入您的年齡=”
read(*,my_age
當輸出字串後沒有換行符時,請在螢幕上輸入您的年齡 =,我的年齡值可以在 = 符號後立即輸入。
-
分兩期寫
或者使用格式格式來控制換行符。 換行符格式為
-
只需在末尾新增乙個 b。
**:print *,a,b
您可以使用 write 命令。
**:write(*,a,b
-
你想在郊遊時合併乙個b嗎?
write(*,"(a)") a//b
-
b=c=d=write(*.100) a,b,c,d !100 是檔案編號。
1000格式(1x,,,1x為換行符,後跟四個數字的輸出格式。
輸出結果(未驗證)為:
-
如果要將其輸出到螢幕,這是不可避免的,並且由cmd視窗的寬度決定。 輸出到檔案,該檔案可以按格式匯出。
-
I 代表整數,A 代表字串,你的問題中的 20a 應該改為 A20,i 和 a 後面的數字代表整數和字串的有限長度。 這意味著 myid 是兩位數的整數,numprocs 是整數,處理器名稱是不超過 20 個字元的字串。
沒有它,您的 ubuntu 系統就無法安裝。
前提是確保您的虛擬光碟機設定正確,並且您可以將其設定為您的電動光碟機。 >>>More
在“控制面板”的“新增和刪除”程式中,檢視是否安裝了 Microsoft,如果是,請考慮解除安裝它,但如果其他程式需要它,可以稍後重新安裝它。 >>>More