我来自C ++。
此代码:
int main() {
int age;
std::cout << "Type your age: ";
std::cin >> age;
return 0;
}
会在终端上产生这样的东西:
Type your age: _
我可以在消息的同一行上输入年龄值。
如何在Haskell中获得相同的结果?
答案 0 :(得分:5)
您可以使用putStr
功能以以下结尾打印不带换行符的消息:
import System.IO
main = do hSetBuffering stdout NoBuffering
putStr "Type your age: "
age <- readLn::IO Int
return ()
答案 1 :(得分:3)
默认情况下,将输出写入缓冲区,直到出现换行符,然后才将其实际写入stdout。要禁用缓冲区并仅直接写入stdout,则要运行hSetBuffering stdout NoBuffering
。 (相关的绑定位于System.IO中)