fortran 数组赋值求助? 10

我有一个文件,每读取一行字符串后赋值给了line,已知文件总行数为n(n也是变量),现在想将每一行字符串赋值给数组A,就像读取第一行后A(1)=line,读取第二行时A(... 我有一个文件,每读取一行字符串后赋值给了line,已知文件总行数为n(n也是变量),现在想将每一行字符串赋值给数组A,就像读取第一行后A(1)=line,读取第二行时A(2)=line,请问数组A如何申明变量和分配空间?
character(len=200)::line
character,allocatable::A(:,:)
do i=1,n
read(3,'(A)',end=99)line
A(i,:)=line
enddo
99 stop
请问代码哪里出错,line无法赋值给A数组。
展开
 我来答
聚发稿网
2016-08-04 · 知道合伙人生活技巧行家
聚发稿网
知道合伙人生活技巧行家
采纳数:5647 获赞数:29663
聚发稿网创始人,作家,笔名志耘誉松著《机械魔敌》《笑泪恋曲》

向TA提问 私信TA
展开全部
第一,data是定义语句,而不是执行语句。第二,allocate(a(n,n))没有问题。第三,网上这些问题你很难搜索到,因为不好描述。别人说的很可能与你遇到的不是同一个问题。你需要有针对性的提问。以下是解答。ProgramBaidu_ThlwsImplicitNonereal::b(3,3)=(/(/1,2,1/),(/3,2,3/),(/2,3,4/)/)!//直接定义时,可以使用这样的二维数组形式。Real,allocatable::a(:,:)Allocate(a(3,3))a=reshape((/1,2,3,4,5,6,7,8,9/),(/3,3/))!//可变数组可使用reshape把一维数组形式转变为二维数组形式write(*,*)awrite(*,*)bEndProgramBaidu_Thlwsreshape函数用于把一个数组改变外形,变为另一个数组。例如上例:a=reshape((/1,2,3,4,5,6,7,8,9/),(/3,3/))把(/1,2,3,4,5,6,7,8,9/)这个1*9的一维数组,转换为(/3,3/)的数组,即3*3的数组。
追问
integer::n
character(len=200)::line
character,allocatable::A(:)
n=3250
do i=1,n
read(3,'(a)')line ! 比如,此处 line = ' 12 ADF23 09876 ' 。
A(i)=line
enddo
这段代码该如何修改呢,A(i)还是无法获取line的值
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2016-08-04
展开全部
character*200::line
character*200::A(10000)
n=10000
do i=1,n
     read(*,'(A)',end=99)line
    A(i)=line
enddo
99 stop
end
追问
character*200::A(10000)提示A最多为A(1000)
追答
在power fortran中10000无问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式