2016-12-10 19 views
0

こんにちはすべてのFortranの恋人を提出する私は書き込みは、行の先頭にいない先頭のスペースや空白エンドラインと</p> <p>を

 program main 

     integer N, u 
     parameter(u=20) 

     open (u, FILE='points.dat', STATUS='new') 
     do 10 i= 1, 100 
      write(u,100) i, i*2, i*5 
10 continue 
100 format (I5, I10, 9X, I10) 
     close(u) 

     print *,'COMPLETE!!' 
     end 

として三つの変数を出力ファイルに書き込みをしようとしています出力(points.dat取り除かファイルの内容)を与える:

 1   2     5 
     2   4     10 
     3   6     15 
     4   8     20 
     5  10     25 
     6  12     30 
     7  14     35 
     8  16     40 
     9  18     45 
     10  20     50 
     11  22     55 
     12  24     60 
     ... 
     ... 
     ... 
     ... 
     ... 
     99  198    495 
    100  200    500 
    |(This line added by the write statement) 

をしかし、私はこのような何かをしたい:

1   2     5 
2   4     10 
3   6     15 
4   8     20 
5  10     25 
6  12     30 
7  14     35 
8  16     40 
9  18     45 
10  20     50 
11  22     55 
12  24     60 
    ... 
    ... 
    ... 
    ... 
    ... 
    99  198    495 
100  200    500|(The cursor stop here) 

つまり、各行の先頭にスペースはありません。最後の行は '500'を印刷した後に終了します

'1X'指定子を使って水平スペーシングを試みましたが、成功しませんでした。

+1

ファイルの最後に「空白行」はありません。最後の行の末尾に改行文字があります。最後の行の最後に改行を削除してから2つのファイルを連結すると、最初のファイルの最後の行と2番目のファイルの最初の行が1行になります。 –

答えて

0

書き込み文にadvance = 'no'を追加します。

 do 10 i= 1, 100 
      write(u,100,advance='no') i, i*2, i*5 
      if (i.ne.100) write(u,*) 
10 continue 

編集:行が最後のものでない場合、EOLを書き、私は今それを参照してください、Fortranプログラムはとにかく、ファイルの末尾にEOLを追加するようです。次に、ファイルを切り捨てるために外部プログラムを使用する必要があります(例:https://www.quora.com/How-do-I-chop-off-just-the-last-byte-of-a-file-in-Bashを参照)。

+0

動作しません。最後の行はまだ空行として表示されます。私はあなたがその質問を理解していないと思う。 – user3051677

関連する問題