| 查看: 2465 | 回复: 23 | |||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | |||
[交流]
【求助】如何实现数字紧贴字母输入
|
|||
|
H 1 H 2 H 3 H 4 H 5 H 6 H 7 H 8 H 9 H 10 H 11 H 12 请教前辈,如何让后面的数字紧贴着字母输入呢后面还有几百行 |
» 猜你喜欢
今天系统多次维护,明天很可能放榜!
已经有5人回复
欢迎发来filecode的Mz6后的代码验证其规律
已经有74人回复
岩土工程学报什么时候才能终审完呐
已经有4人回复
时间戳又变了8-15
已经有25人回复
2027广东省杰青
已经有6人回复
快农历七夕节了,轻松一下,男人悄悄话,女施主请不要进来。
已经有3人回复
哪位老哥知道今年的国自然具体哪一天放榜?
已经有9人回复
咱们一起用铁证分析2026国家社科基金中标与否
已经有26人回复
我的国基提前知道中了,可是同事的操作让我实在接受不了,怎么会有这样的人
已经有16人回复
有时候,自然基金真的不能太认真 (我的申报经验)
已经有12人回复
» 本主题相关价值贴推荐,对您同样有帮助:
【求助】光栅重构DLP(Discrete Layer Peeling)模型
已经有2人回复
【资源】催化剂制备中浸渍(等体积浸渍)不断改进
已经有151人回复
【求助】帮忙看一段程序
已经有9人回复
【讨论】80后”创业者何以前仆后继
已经有0人回复
【分享】巨牛总结:搞有机必须学会的合成检索方法
已经有169人回复
» 抢金币啦!回帖就可以得到:
2026年财务管理、经济与信息技术国际会议 (FMEIT 2026)
+1/604
今天看到省基金挂了,希望国基面上能中吧
+5/425
山东征女友,坐标济南
+1/164
中国科学院空天院精密干涉测量团队招聘光学/算法/机械方向博士后/特别研究助理
+1/80
中国科大-合肥国家实验室冷原子量子网络团队招聘启事
+2/40
天津大学环境学院童银栋教授招收博士后(生源要素循环/温室效应/新污染物方向)
+1/30
2026年生物学、大数据与信息工程国际会议 (BSBIE 2026)
+1/29
清华大学深圳国际研究生院招聘-博士后(长期有效)
+1/29
物理学报录用,散币感谢合作者和审稿人
+2/24
祝福!祈福!!基金中中中!
+5/15
27级博士生 + 福州大学 + 经管学院 + 管理科学与工程(见贴则有指标)
+1/8
河海大学海洋环境污染与生态毒理学研究组招收2027级硕士生 及博士研究生
+1/6
北京理工大学-集成电路与电子学院杰青团队-招博士后
+1/5
北理工集成电路杰青团队 | 诚招科助理
+1/5
UTS 招收2027年入学博士生
+1/3
南京医科大学-冯璋课题组-招收2027级生化与分子生物学专业博士和硕士研究生
+1/3
中山大学国家级青年人才课题组招收推免硕士2名(2027年入学)
+2/2
国家级人才团队诚聘生物信息相关专业的科研助理
+1/1
中科院理化所热声热机团队招聘电气工程专业(电机方向)博士后/特别研究助理
+1/1
分析化学的科研文章有没有人需要交流的啊
+1/1
★ ★
jjdg(金币+2): 感谢参与 2011-06-17 22:09:03
jjdg(金币+2): 感谢参与 2011-06-17 22:09:03
|
好的,找来看一看 fortran对于格式的要求很严格,刚开始读取数据的时候出现的是 At line 10 of file tiH.f90 (unit = 17, file = 'wa_xyz.dat') Fortran runtime error: End of file 这个错误修改之后,对于读取和写入数据采取不同的格式之后,看出了问题所在,下面是 [code:] program main implicit none integer i,j character B real A dimension B(768),A(768,3) open(17,file='wa_xyz',status='old') do i=1,768 read (17,*) B(i),A(i,1),A(i,2),A(i,3) end do close(17) open(18,file='nem_wa_xyz',status='unknown') do i=1,768 if(mod(i,3)/=0)then write(18,*)(B(i),A(i,j),j=1,3) end if end do close(18) stop end program [code:] 读取这样一段数据: O 3.668000 10.082000 15.904000 H 3.224000 10.451000 15.101000 H 3.092000 10.379000 16.627001 O 5.186000 16.695999 12.072000 H 6.083000 16.979000 11.816000 H 5.337000 15.832000 12.490000 O 3.786000 16.318001 1.310000 H 3.781000 15.388000 1.196000 H 4.528000 16.580000 0.781000 O 6.205000 6.991000 18.441999 H 6.782000 7.347000 19.152000 H 5.309000 7.062000 18.799999 O 16.125999 14.701000 4.577000 H 16.070000 14.272000 3.726000 ……………………………………………………………………………… 得到的如下 O 3.6680000 O 10.082000 O 15.904000 H 3.2240000 H 10.451000 H 15.101000 O 5.1859999 O 16.695999 O 12.072000 H 6.0830002 H 16.979000 H 11.816000 O 3.7860000 O 16.318001 O 1.3099999 H 3.7809999 H 15.388000 H 1.1960000 O 6.2049999 O 6.9910002 O 18.441999 H 6.7820001 H 7.3470001 H 19.152000 O 16.125999 O 14.701000 O 4.5770001 H 16.070000 H 14.272000 H 3.7260001 O 2.7500000 O 8.8439999 O 9.6289997 H 2.1099999 H 8.2900000 H 9.9980001 O 10.674000 O 8.9090004 O 4.9860001 H 10.998000 H 8.8710003 H 5.9320002 O 2.00000009E-03 O 5.6669998 O 14.591000 H 0.48300001 H 5.9899998 H 13.830000 ……………………………………………………………………………… 这就可以明显的看出问题是出在哪里了,本来读取数据的时候采用的是和写入一样的方式(B(i),A(i,j),j=1,3),一直出现上面的错误,记录一下,以备日后学习汲取教训 [ Last edited by xk6891 on 2011-3-20 at 13:20 ] 进一步修改成这样就顺多了,首先要能读,然后才是写入数据 code: program main implicit none integer i,j character B real A dimension B(768),A(768,3) open(17,file='wa_xyz',status='old') do i=1,768 read(17,*)B(i),A(i,1),A(i,2),A(i,3) end do close(17) open(18,file='nem_wa_xyz',status='unknown') do i=1,768 if(mod(i,3)/=0)then write(18,"(A3,3(F16.6))" B(i),A(i,1),A(i,2),A(i,3)end if end do close(18) stop end program code: 得到的结果 O 3.668000 10.082000 15.904000 H 3.224000 10.451000 15.101000 O 5.186000 16.695999 12.072000 H 6.083000 16.979000 11.816000 O 3.786000 16.318001 1.310000 H 3.781000 15.388000 1.196000 O 6.205000 6.991000 18.441999 H 6.782000 7.347000 19.152000 O 16.125999 14.701000 4.577000 H 16.070000 14.272000 3.726000 O 2.750000 8.844000 9.629000 [ Last edited by xk6891 on 2011-3-20 at 13:25 ] |
22楼2011-01-13 23:56:56
★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
xk6891(金币+5):谢谢前辈,问题解决了。用了第二种方法 2011-01-12 10:32:06
余泽成(金币+3):谢谢参与应助! 2011-01-13 19:47:34
小木虫(金币+0.5):给个红包,谢谢回帖交流
xk6891(金币+5):谢谢前辈,问题解决了。用了第二种方法 2011-01-12 10:32:06
余泽成(金币+3):谢谢参与应助! 2011-01-13 19:47:34
|
program align_left_output_1 do i=1,200 L=int(log10(i*1.0))+1 write(*,100) i enddo 100 format('H'I end program program align_left_output_2 character*8 tmpchar do i=1,200 write(tmpchar,'(I8)') i write(*,*) 'H'//adjustl(tmpchar) enddo end program 第一种方法形式简单,容易理解。但变宽度输出依赖于编译器,可移植性不好;而且用到了对数运算,在数据量很大时效率较低。 第二种方法借用了临时字符串做内部文件,效率可能更高一些。 |
2楼2011-01-12 09:17:49
3楼2011-01-12 10:37:14
4楼2011-01-12 13:49:20










回复此楼
B(i),A(i,1),A(i,2),A(i,3)