我的程序允许用户指定一个作为输入读取的文件,但这是可选的.如果用户没有指定文件,我想从命令行读取输入.
到目前为止我有这个:
main :: IO()
main = do
(opts, mbArgs) <- parseCmdLine
input <-
case mbArgs of
Nothing -> getContents
Just file -> readFile file
Run Code Online (Sandbox Code Playgroud)
这似乎不起作用.当用户没有规定文件时,他们能够输入输入,但似乎无法终止,以便程序可以对该输入进行操作.
我以为你必须按Ctrl + D,但这没有做任何事情.
谢谢你的帮助.
在典型的类Unix终端中(例如Cygwin,至少在Cygwin中rxvt;不确定Windows命令提示符),Ctrl+ D只在你开始行时发送EOF.如果你点击Enter然后Ctrl+ D,它应该工作.如果你想在没有换行的情况下发送EOF,请连续两次点击Ctrl+ D.
如果不是这样,那么你的终端可能还有其他一些问题; 代码看起来很好.