24小时热门版块排行榜    

查看: 1753  |  回复: 8

allenjobsf853

铜虫 (小有名气)

[求助] fortran整数输出格式的问题

编了一个fortran程序,但是格式不会弄 具体如下

想要第一段为7列宽度,输出整数, 第二输出字母 ,比如

1        ab
456    ab
125    ab

结果现在都是右顶格输出  撑了下面的样子:
        1ab
    456ab
    125ab

怎么才能弄成第一种的???  不尽感激啊
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

【答案】应助回帖


jjdg(金币+1): 感谢参与 2011-07-05 12:40:27
allenjobsf853(金币+10): 这个肯定不行,上万行的文本,数字是不一样的 2011-07-05 18:13:06
这个似乎没有什么好办法,你需要知道你的整数的长度是多少,然后人为控制,比如
CODE:
write(*,'(i0,5x,a)') 1, 'ab'
write(*,'(i0,3x,a)') 456, 'ab'
write(*,'(i0,3x,a)') 456, 'ab'

2楼2011-07-04 20:12:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

【答案】应助回帖

★ ★ ★
jjdg(金币+3): 感谢参与 2011-07-05 12:40:16
另外一种方法,可能更简便一些:
CODE:
program i2s

character(len=10) :: ci

write(ci,'(i0)') 1234567890
write(*,'(a,a)') ci,'ab'

write(ci,'(i0)') 123456
write(*,'(a,a)') ci,'ab'

end program i2s

3楼2011-07-04 20:25:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

nono2009

超级版主 (文学泰斗)

No gains, no pains.

优秀区长优秀区长优秀区长优秀区长优秀版主

【答案】应助回帖

★ ★
余泽成(金币+2): 谢谢参与应助! 2011-07-05 20:19:06
4楼2011-07-04 20:25:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

allenjobsf853

铜虫 (小有名气)


dubo(金币+1): 欢迎常来程序语言版讨论 2011-07-31 13:31:30
引用回帖:
Originally posted by snoopyzhao at 2011-07-04 20:25:16:
另外一种方法,可能更简便一些:

[code]
program i2s

character(len=10) :: ci

write(ci,'(i0)') 1234567890
write(*,'(a,a)') ci,'ab'

write(ci,'(i0)') 123456
write(*,'(a,a)') ci,'ab'

end ...

这个方法不错 受教了 不过我找到了更方便的做法 在帖子最下面
5楼2011-07-05 18:13:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

allenjobsf853

铜虫 (小有名气)


dubo(金币+1): 欢迎常来程序语言版讨论 2011-07-31 13:31:35
将数字写入字符串,和三楼老兄学习的


然后用一个函数 adjustl  可以将字符串右移到顶
6楼2011-07-05 18:18:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

allenjobsf853

铜虫 (小有名气)


dubo(金币+1): 欢迎常来程序语言版讨论 2011-07-31 13:31:40
引用回帖:
Originally posted by nono2009 at 2011-07-04 20:25:53:
http://www.programfan.com/club/showtxt.asp?id=230012

谢谢斑竹啊 能不能帮忙把网页复制到word一下发给我啊,

我打开后都是乱码 不知道是什么东西 谢谢了啊 发到ff@nus.edu.sg 多谢多谢
7楼2011-07-05 18:21:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

nono2009

超级版主 (文学泰斗)

No gains, no pains.

优秀区长优秀区长优秀区长优秀区长优秀版主

★ ★
余泽成(金币+2): 辛苦辛苦! 2011-07-05 20:21:36
网页的内容:
[quote]
想把一个矩阵存成txt文件,用制表符tab分割的,这样可以用excel打开,每个数据占一个格,而不是整行数据在一个格内。

不知道能不能这样存,怎么存?

高手指点!谢谢!


作者:mltx      发表时间:2007-5-2 10:45:00
 第1楼  

char(9)是tab。


作者:f2003      发表时间:2007-5-4 2:39:00
 第2楼  

以前大家都没有注意到char这样的内部函数。自从一位兄弟发现后,此类问题很好的被解决了。3人行必有我师啊~


作者:mltx      发表时间:2007-5-4 20:00:00
 第3楼  

同理可以输出很多系统字符命令:
char(10)=Line feed (换行)
char(13)=Carriage return (返回第一列)

如:
write(*,*) "ABCDEF",char(13),"abc"
输出结果为:
abcDEF



作者:qqz2001      发表时间:2007-5-5 7:41:00
 第4楼  


可是一行有几万个数据,总不能这样一个一个写char(9)吧


作者:mltx      发表时间:2007-5-5 8:54:00
 第5楼  

如果需要,只得写。可以用循环语句嘛。


作者:qqz2001      发表时间:2007-5-5 8:59:00
 第6楼  

但是循环每次就换行了,怎么继续接在原来一行后面继续啊?
谢谢


作者:mltx      发表时间:2007-5-5 21:04:00
 第7楼  

可以用advance='no'吧。

也可以用隐循环嘛:
write(*, "( 10(e12.5,a) )" ) ( (a(i),char(9)), i=1,10)
其中含有变量的格式部分可以用内部文件实现。


作者:qqz2001      发表时间:2007-5-5 21:18:00
 第8楼  


谢谢,很好用。
又学了一招
我是fortran初学者,
但每次遇到困难都能得到帮助,同时能学到很多东西
非常感谢!!
[quote]
8楼2011-07-05 18:43:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zzzzyyyy

铜虫 (初入文坛)

★ ★
余泽成(金币+2): 欢迎新虫,常来程序语言版! 2011-07-11 20:38:24
引用回帖:
Originally posted by nono2009 at 2011-07-05 18:43:50:
网页的内容:
[quote]
想把一个矩阵存成txt文件,用制表符tab分割的,这样可以用excel打开,每个数据占一个格,而不是整行数据在一个格内。

不知道能不能这样存,怎么存?

高手指点!谢谢!


作者: ...

把矩阵的每一行按照标准格式存一下,比如一个100*100的按照这个来写
        do i = 1 , 100
                write(102,"(100F12.6)" data(i,
        end do
然后用Origin或者Excel导入都可以
如果Excel导入不行得话可以用Origin导入再复制过去...
9楼2011-07-07 22:01:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 allenjobsf853 的主题更新
信息提示
请填处理意见