Fortran90/95の出力方法について
Fortran95において,変数の値をwrite文で出力した後に改行しない方法を教えてください.
具体的には次のProgram reiを用いて質問します.
program rei
implicit none
integer i, n
read(*,*) n
do i = 1, n
write(*,*) i
end do
end
このプログラムを実行させnに3を代入すると次のように表示されます.
1
2
3
しかし,私としては次のように改行せずに表示させたいのです.
1 2 3
また,諸事情により配列は使用しません.
プログラムをどのように改良すればよいのでしょうか.教えてください.
No.3
- 回答日時:
こんにちは。
既に解決されているかもしれませんが、数値のまま1行出力する例
を掲載させて頂きます。
以下の2パターンの方法により、1行出力を行うサンプルです。
1)WRITE文の出力リストで、「DO型出力リスト」を使用する。
2)WRITE文の書式指定で、「改行抑止($)」を指定する。
※当方では、Cygwinのg95で検証してみました。
■サンプルソース
注)インデント等のため全角スペースを入れています。
・ご使用の際は、タブor半角スペースに置換して下さい。
=========================
!== WRITE文での1行出力テスト ==
PROGRAM testw2
IMPLICIT none
INTEGER i, n
CHARACTER sfmt*20
!== 個数の入力 ==
WRITE(*,fmt='(A)',advance='no') 'Number(1-99)='
READ(*,*) n
IF (n<1 .OR. n>99) THEN
PRINT *,'** Numerical range is over. **'
STOP
ENDIF
!== Test-1: DO型リストで出力(書式はデフォルト) ==
PRINT *,'== Test-1 =='
WRITE(*,*) ( i, i=1,n )
!== Test-2: DO型リストで出力(書式指定:n個×4桁) ==
PRINT *,'== Test-2 =='
WRITE(sfmt,'("(",I2,"I",I2,")")') n,4
WRITE(*,sfmt) ( i, i=1,n )
!== Test-3: 改行抑止($)で出力 ==
PRINT *,'== Test-3 =='
DO i = 1, n
WRITE(*,'(I4,$)') i
END DO
PRINT *
END PROGRAM testw2
=========================
<サンプルの実行結果>
Number(1-99)=10
== Test-1 ==
1 2 3 4 5 6 7 8 9 10
== Test-2 ==
1 2 3 4 5 6 7 8 9 10
== Test-3 ==
1 2 3 4 5 6 7 8 9 10
■参考サイト
配列要素を一行に出力する
http://rakasaka.fc2web.com/fortran/fortran.html# …
↑これは上記サンプルのように配列でなくても利用できます。
WRITE文の改行を抑制する
http://rakasaka.fc2web.com/fortran/fortran.html# …
以上です。
No.1
- 回答日時:
write で advance='no' と指定すれば良いみたいですよ
参考URL
http://www.nag-j.co.jp/fortran/FI_18.html
http://www.nag-j.co.jp/fortran/code/advance.f90
この回答への補足
YUI_AIさん早速解答していただきありがとうございます。
私の説明不足だったのですが,実は質問をする前にwrite文でadvance='no'とする方法を試しました.しかし,write文でadvance='no'とする方法では文章を表示させることはできても変数を表示させることができませんでした.そこで,変数により数値を表示させつつ改行もしない方法が知りたいのです.
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) プログラムが書けません。 6 2023/01/22 22:58
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- C言語・C++・C# このプログラミングの問題を教えて欲しいです。 キーボードから整数kを入力し、kが配列aの中に何個存在 2 2022/12/19 22:50
- C言語・C++・C# このプログラミングの問題を教えてほしいです。 キーボードからデータ数nとn個のデータを入力し、平均値 3 2022/12/19 22:51
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- その他(プログラミング・Web制作) FORTRAN77の配列(除算) 2 2023/02/01 14:34
- C言語・C++・C# C言語初心者 構造体 課題について 2 2023/03/10 19:48
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
- その他(プログラミング・Web制作) Fortranでの出力ファイル 2 2023/03/21 21:25
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PS4コントローラーをPCでゲーム...
-
アクセスでエクセルに出力する...
-
4Kの外部モニターに出力すると...
-
printfとputcharの違いは
-
コンセントの電力は入力と出力...
-
VBAでテキスト出力時のスペース...
-
ListViewの複数選択について
-
CRC16計算について
-
printfの書式%.*s
-
PCの設定「サウンド」の「出力...
-
makeで文字化けする。migwのmak...
-
アクセスで教えてください。 レ...
-
MMDでavi出力が出来ない
-
VBAで有効数字の設定
-
VBAのExecメソッドで画面を非表...
-
C# 標準出力のencodingをutf8に...
-
発電機の出力について
-
スマホのバッテリー消費につい...
-
C言語でのLinux再起動方法とは?
-
Windows Formアプリからコンソ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PS4コントローラーをPCでゲーム...
-
4Kの外部モニターに出力すると...
-
プログラムについての質問です...
-
printfとputcharの違いは
-
cout と cerrの違い
-
COBOLのMOVEで桁数が異なる場合
-
テキストファイルから特定の文...
-
MMDでavi出力が出来ない
-
コンセントの電力は入力と出力...
-
アクセスでエクセルに出力する...
-
OBS配信すると、マイクが途切れ...
-
coutで出力した文字を消去する...
-
CRC16計算について
-
VBA レジストリの値の読み方に...
-
ACCESS クエリ→フォーム...
-
printfの書式%.*s
-
VBAで有効数字の設定
-
VBAでテキスト出力時のスペース...
-
VBAのExecメソッドで画面を非表...
-
makeで文字化けする。migwのmak...
おすすめ情報