基础数学.输出结束于新线?

0 math perl output

我在Perl中执行一个程序,用户输入两个数字,它将显示数字的加法,减法,乘法和除法的结果.它正确显示输出,但即使没有新行字符,它也会将所有内容放入新行.我有一个让它不与用户名合并.

print "What is the first number?  ";
$num1 = <>;
print "What is the second number?  ";   
$num2 = <>;

$add = $num1 + $num2;
$sub = $num1 - $num2; 
$mult = $num1 * $num2;
$div = $num1 / $num2;

print "$num1 + $num2 = $add ";
print "$num1 - $num2 = $sub ";         
print "$num1 * $num2 = $mult ";
print "$num1 / $num2 = $div ";
print "\n";
Run Code Online (Sandbox Code Playgroud)

怎么了?

chr*_*lck 8

您需要chomp从STDIN输入...

$rv = <STDIN>;
chomp $rv;
Run Code Online (Sandbox Code Playgroud)


Bor*_*din 8

您从中获得的输入字符串<>包括用户在输入结尾处键入的换行符.

使用像这样的字符串进行简单的算术运算正常:Perl将忽略数字末尾的空格.但是如果您不希望它在打印时出现,则必须先将其删除.

最好的方法是chomp,如果它在那里,将从字符串的末尾删除输入行终止符,否则保持不变.

这个成语是

chomp($num1 = <>);
Run Code Online (Sandbox Code Playgroud)