【问题标题】:Why does the output appear black?为什么输出显示为黑色?
【发布时间】:2020-04-16 16:36:06
【问题描述】:
  • 操作系统:Windows 10
  • 编译器:XStart
  • 运行程序时的命令:pgf90 prgramname.f90
  • 运行程序命令:a.out

我写的程序代码:

Program silta
implicit none
CHARACTER :: Str_1 = " For", Str_2 =" tran", z
z = Str_1 // Str_2 // " -90"
print *, z
end program silta

当我运行这个程序时,没有结果,只有黑色空间。 问题的结果可能是 Fortran-90,但是我怎样才能让它正确打印呢?

【问题讨论】:

    标签: fortran


    【解决方案1】:

    这一行

    CHARACTER :: Str_1 = " For", Str_2 =" tran", z
    

    声明 3 个字符变量,每个变量长一个字符。因此,您得到的是 str1 == " "str2 == " "z 未设置。那么这一行

    z = Str_1 // Str_2 // " -90"
    

    被解释为

    z = " " // " " // " -90"
    

    但只有第一个字符(即空格)进入z。这就是你打印出来时看到的,或者更确切地说,这就是你看不到的,它只是一个空格。

    回到你的 Fortran 教程并了解字符长度,也许从

    开始
    CHARACTER(len=8) :: Str_1 = " For", Str_2 =" tran", z
    

    正如 VladimirF 所评论的,还要学习内在函数 trim 以消除字符变量中的尾随空格。还有其他有用的内在字符串函数,值得你研究。

    【讨论】:

    • 试试TRIM(Str_1) // TRIM(Str_2) // " -90" 也很好,我相信它在一些副本以及许多教科书和教程中都有介绍。这与CHARACTER(30) 的实验有关。
    猜你喜欢
    • 2015-05-13
    • 2014-11-16
    • 2012-04-12
    • 1970-01-01
    • 2015-10-15
    • 1970-01-01
    • 1970-01-01
    • 2014-01-17
    • 1970-01-01
    相关资源
    最近更新 更多