相关疑难解决方法(0)

为什么printf和sprintf在给定数组时表现不同?

sub do_printf  { printf @_ }
sub do_sprintf { print sprintf @_ }

do_printf("%s\n", "ok");  # prints ok
do_sprintf("%s\n", "ok"); # prints 2
Run Code Online (Sandbox Code Playgroud)

perl

10
推荐指数
3
解决办法
1677
查看次数

sprintf 返回参数数量而不是字符串

我想包装该sprintf函数以供以后进行字符串操作。代码被简化为错误:

#!/usr/bin/perl

sub myPrintf
{
    printf (@_);
    
    my $text = sprintf (@_);
    
    print "$text\n";
}

myPrintf("X%.3f Y%.3f\n", 1.223243, 4.567567);

my $t2 = sprintf("X%.3f Y%.3f\n", 1.223243, 4.567567);
print "$t2";
Run Code Online (Sandbox Code Playgroud)

输出是

X1.223 Y4.568
3
X1.223 Y4.568
Run Code Online (Sandbox Code Playgroud)

“3”是否打印在第二行?如何解决这个问题?

我期望:

X1.223 Y4.568
X1.223 Y4.568
X1.223 Y4.568
Run Code Online (Sandbox Code Playgroud)

这里出了什么问题?

perl printf

1
推荐指数
1
解决办法
61
查看次数

标签 统计

perl ×2

printf ×1