【发布时间】:2014-04-16 12:07:36
【问题描述】:
我是 PERL 的新手,但在使用 C 语言时很快就学会了。
我的问题似乎很简单,但我一生都找不到简单的答案。基本上我想在用户输入的同一行打印一些东西
示例
print "Please Enter Here: ";
my $input = <STDIN>;
chomp $input;
print " - You Entered: $input";
输出
请在此处输入:123
- 你输入:123
这是不受欢迎的,因为我希望所有这些都在终端窗口的一行中。目前,一旦用户按下回车键,它就会在下面的行中打印第二个字符串。我想我需要做的是使用 STDIN 做一些事情,比如忽略回车或换行,但我不确定。
期望的输出
请在此处输入:123 - 您输入:123
我不知道为什么这对谷歌来说似乎是一件复杂的事情,但我还没有理解它,所以任何帮助将不胜感激。
塔
【问题讨论】:
-
STDIN 是基于行的。可能您需要其他功能来执行此操作。例如:stackoverflow.com/questions/8676026/…
-
为什么不在输入后重绘界面呢?否则,您将需要找到某种方法让您的终端忽略除换行符以外的所有字符,这势必会让人感到痛苦。
-
当用户按下回车键时,肯定有一种简单的方法可以忽略返回行。以同样的方式 chomp 从变量的末尾删除 \n ,有没有办法对 STDIN 做同样的事情,这样它就不会换行?
-
嗯,我可能在这里把我当作白痴,但我一直认为换行符来自用户实际输入的输入?如果这是真的,您至少需要您的用户以其他方式结束输入,或者让终端在将换行符传递给应用程序之前不绘制换行符。虽然可能很愚蠢,我真的从来没有想过这个。
标签: perl