【问题标题】:How to print and read at in the same line in Haskell?如何在 Haskell 的同一行中打印和阅读?
【发布时间】:2019-05-12 01:29:31
【问题描述】:

我来自 C++。

这段代码:

 int main() {
     int age; 
     std::cout << "Type your age: ";
     std::cin  >> age;
     return 0;
 }

会在终端上产生类似的东西:

 Type your age: _

我可以在消息的同一行输入年龄值。

如何在 Haskell 中获得相同的结果?

【问题讨论】:

标签: c++ haskell functional-programming


【解决方案1】:

您可以使用putStr 函数打印末尾没有换行符的消息:

import System.IO

main = do hSetBuffering stdout NoBuffering
          putStr "Type your age: "
          age <- readLn::IO Int
          return ()

【讨论】:

    【解决方案2】:

    默认情况下,输出被写入缓冲区,直到出现换行符,然后才真正写入标准输出。要禁用缓冲区并直接写入标准输出,您需要运行hSetBuffering stdout NoBuffering。 (相关绑定在 System.IO 中)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-01
      • 2021-11-29
      • 1970-01-01
      • 2012-12-19
      • 2023-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多