1

ファイル 1 に次のテキストがあります。

printf ("integer value is %x \n", a);

ファイル 1 からデータを読み取り、ファイル 2 に書き込みたいと考えています。この特定の行に到達すると、ファイル 2 は次のように表示されます。

printf ("integer value is 0 \n", a);

なぜそれが起こるのですか?どうすればこれを回避できますか?

これは私のPerlコードがどのように見えるかです:

while ($line = <$in_fh>) {
    printf $out_fh $line;
}

ここで、$in_fh と $out_fh は in & out ファイル ハンドルです。

4

2 に答える 2

6

それがprintfそうするからです。あなたがしたいprint

while ($line = <$in_fh>) {
    print $out_fh $line;
}

を使い続けたい場合はprintf、使用する必要があります

while ($line = <$in_fh>) {
    printf $out_fh "%s", $line;
}
于 2012-10-09T18:08:26.223 に答える
3

printfフォーマット文字列として解釈し、トークンのように見えるもの$lineを見つけるためです。代わりに%x使用してください。print

于 2012-10-09T18:08:44.363 に答える