2017-08-31 9 views
1

改行なしで多くの値を印刷する方法は?改行なしで値を印刷

PRINT *, "foo:", foo, ", bar:", bar, ", baz:", baz 

明らかに、これはWRITEherethere)で可能です。 PRINTと同じ構文を実現するには、いくつかの値を印刷するときにその構文が異なりますか?

+0

'print'を使用するときに明示的なフォーマットを指定する方法を尋ねますか? – francescalus

+2

印刷は、基本的に、あまりカスタマイズできない形式の書き込みです。なぜあなたはこれをやろうとしていますか? – Ross

+1

ちょうど書き込みを使用して、プリントは単純なもののためだけです。 –

答えて

3

writeステートメントには、オプションのadvance指定子がありますが、printでは指定できません。

複数の項目を同じ行に印刷するために、複数の項目をadvance="no"と複数のコードで作成することができます。ただ、一例として、doループ内からそれを使用して:advanceは「何かを印刷するには、「*」を使用して(並び出力で使用することはできませんことを

do i=1,3 
    write(*, fmt="(1x,a,i0)", advance="no") "loop #", i 
end do 
write(*,*) ! Assumes default "advance='yes'". 
write(*,*) "--OK, the loop is done!" 

! Example output: 
loop #1 loop #2 loop #3 
--OK, the loop is done! 

注意")。したがって、書式指定子の例として、書込みステートメントごとに1つの空白スペース、文字列、および1つの整数を出力する書式指定子の例を示しました(fmt="(1x,a,i0)")。言語リファレンスやコンパイラのドキュメントが便利です。たとえば、hereを参照してください。

他の人も示唆しているように、これが望ましい動作であれば、writeを使用することをお勧めします。何らかの理由でまだprintを使用したい場合は、印刷する前に出力項目を1つの変数または変数リストにアセンブルする必要があります。

+0

以下は、フォーマット記述子の詳細を知るのに便利です:http://www.chem.ox.ac.uk/fortran/format.html、私は 'PRINT'のようなループのない行列を表示するためのものは何も見つかりませんでしたがオファー。 – Codoscope

+0

@ Qu'est-cet'yontええ、私はあなたがそれによって何を意味するか分かりません。 'print'が行うことができることの例を示してもらえますか? –

関連する問題