如何在Haskell的同一行中打印和读取at?

wsxa1bj1  于 11个月前  发布在  其他
关注(0)|答案(2)|浏览(128)

我来自C++。
此代码:

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

字符串
会在终端上产生这样的结果:

Type your age: _


我可以在消息的同一行输入年龄值。
如何在Haskell中实现相同的结果?

flvlnr44

flvlnr441#

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

import System.IO

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

字符串

0qx6xfy6

0qx6xfy62#

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

相关问题