使用标准输入

时间:2017-11-10 10:22:27

标签: f#

我面临一个让我迷失方向的问题,因为它应该是一个非常基本的程序。我正在学习如何使用F#构建简单的控制台应用程序,但我无法弄清楚如何将整数作为标准输入传递给程序。请考虑:

open System

let square x = x * x

[<EntryPoint>]
let main (argv :string[]) = 
    printfn "The function will take an input and square it" 
    printfn "%d squared is %d" 12 (square 12)
Console.ReadLine() |> ignore
0

如何将值传递给printfnsquare,就像我在C中所做的那样:

int main(){
    int i;
    scanf("%d", &i);
    printf("\nThe value of variable i is %d.\n", i);
    return 0;
}

我尝试调整let x = Console.ReadLine()来获取整数,但没有明显的结果。我咨询过documentation,主要考虑字符串输入。我担心错过了一些重要的东西,以便正确理解F#的基础。从这个意义上说,任何建议都会受到高度赞赏。

1 个答案:

答案 0 :(得分:4)

ReadLine ()将返回一个字符串。正如@JohnPalmer所提到的,它需要被解析为int。以下程序应该为您提供基本的想法:

let rec input () =
    printf "Input: "
    match Core.int.TryParse (stdin.ReadLine ()) with
    | true, i -> i
    | _ ->
        printfn "Invalid input, try again"
        input ()

let square x = x * x

[<EntryPoint>]
let main _ =
    printfn "The function will take an input and square it"
    let i = input ()
    printfn "%d squared is %d" i (square i)
    0
相关问题