gpt4 book ai didi

fortran - 检查输入数据类型以及它是否为空或空

转载 作者:行者123 更新时间:2023-12-04 04:44:13 25 4
gpt4 key购买 nike

我要求用户在运行时给出一个值来进行一些计算。

  • 我想测试用户输入的值是否是实数/整数,如果不是,则警告程序在这里需要实数/整数。
  • 另外,我也想知道我们如何检查当前的特定变量是否为空或空。即我已经声明了一个变量,但是如果在计算时它的值为空或空或尚未设置,在这种情况下,程序不应崩溃,而是发出警告以提供正确的值。

  • 这两个操作在 C++ 和 C# 中都容易得多,但我找不到在 Fortran 中做到这一点的方法。

    最佳答案

    我猜“空或空”是指变量是否已初始化:“尚未设置”。 “null”对于 Fortran 指针变量具有特殊含义,但我想这不是您的问题。
    Fortran 在有意初始化变量之前不会自动给它们一个特殊值,因此没有简单的方法来检查变量是否已被初始化。一种方法是使用特殊值初始化变量及其声明。这意味着您需要知道一个在程序运行中永远不会获得的特殊值。一种可能性是使用 huge内在:

    program TestVar

    real :: AVar = huge (1.0)

    if ( AVar < huge (1.0) ) then
    write (*, *) "Test 1: Good"
    else
    write (*, *) "Test 1: Bad"
    end if

    AVar = 2.2

    if ( AVar < huge (1.0) ) then
    write (*, *) "Test 2: Good"
    else
    write (*, *) "Test 2: Bad"
    end if

    end program TestVar

    正如@arbautjc 所警告的那样,即使在子程序中,这也只能工作一次。在过程中,带有声明的初始化仅在第一次调用时完成。此外,如果您从本示例更改变量类型,请务必了解 huge作品(例如, Long ints in Fortran )。

    关于fortran - 检查输入数据类型以及它是否为空或空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18446343/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com