[問題] 如何讀取以空白分隔的字串?

看板Fortran作者 (jsb)時間15年前 (2009/03/09 20:06), 編輯推噓0(006)
留言6則, 3人參與, 最新討論串1/1
試過用這樣的程式讀取, program strings character*40 a(5) open(1,file="t.txt",status='old') read (1,'(5a)') (a(i),i=1,5) do i=1,5 write (*,*) a(i) end do end 結果是 a(1) 就把五個字串讀光光, 剩下的 a(2) 到 a(5) 都讀到空字串。 難道真的要一個一個字元讀,再自己整理出字串來嗎? 應該有簡單一點的方法吧? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.80.241

03/09 20:21, , 1F
這是fortran的痛處…
03/09 20:21, 1F

03/09 22:41, , 2F
宣告時a陣列每個元素是a40,可是讀檔時5元素卻只給5a?
03/09 22:41, 2F

03/10 00:28, , 3F
不知道長度的話是真的可以不用在型態後面加長度的。例如:3i
03/10 00:28, 3F

03/10 00:29, , 4F
就表示有三個不知道幾位數的整數。
03/10 00:29, 4F

03/10 00:46, , 5F
不用'(5a)'改用*(自由格式)就可以略過空白了。
03/10 00:46, 5F

03/10 11:13, , 6F
原來這麼簡單!多謝!
03/10 11:13, 6F
文章代碼(AID): #19jGOpUS (Fortran)
文章代碼(AID): #19jGOpUS (Fortran)