1个回答
展开全部
read的字段有很多个,上述中read后边括号内跟有两个字段,第一个是个数字,代表一个设备号,跟相应的数据文件关联;第二个是一对单引号引住的一对圆括弧里的内容:i表示输出整数,i4,表示输出一个长度为四位的整数,,f12.5表示输出一个12位长度的实数,其中五位是小数点后的位数,,1p表示把数字加一输出,,e16.7表示以科学计数法输出一个16位长度的实数,7表示小数部分7位。
追问
read(45,'(i4,f12.5,1p6e16.7)') n, height(n), b(n), c(n),kd,kd,kd,kd
请问大侠这是怎么回事,按照你上面的说法,应该是读3个字段,一个i4格式,一个是f12.5格式,一个是1p6e16.7字段,可是上面那句代码是没错的,可是输出的字段却有 n, height(n), b(n), c(n),kd,kd,kd,kd这么多个。而且最后都读入kd算是重复读出吧,这个kd值就相当于一个临时变量了吧?
追答
1p后边是6e16.7,表示输出六个格式为e16.7的实数。kd重复读取四次这种写法没有见过,应该跟输入文件里的数字排列方式有关。你可以设置一些新的变量名来代替现有的读取方式,比方说:
real :: kd1,kd2,kd3
read(45,'(i4,f12.5,1p6e16.7)') n, height(n), b(n), c(n),kd,kd1,kd2,kd3
待到用的时候,可以忽略掉不需要的
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询