9
votes

Comment imprimer le caractère '%' avec 'Printf'?

Un problème simple que je ne peux pas comprendre ...

Comment imprimer un caractère "%" dans un printf code> string? Le code ci-dessous l'imprime, mais donne également une erreur «conversion invalide». P>

        0000 HRS    =>    3125.19    898.02    28.7%


0 commentaires

6 Réponses :


24
votes

Vous utiliseriez %%, pas \% (de Man Printf )


3 commentaires

"Man Printf" vous dit-il vraiment la fonction Perl de votre système? Sur le mien, cela ne raconte que le programme de ligne de commande. Je peux obtenir la fonction c avec "homme 3 printf"; Si je veux lire sur la fonction Perl, j'utilise "Perldoc -f Printf"


Au moins, on dirait que nous sommes tous d'accord sur la réponse.


@Rob Kennedy: "Perldoc -f printf" ne me donne aucun détail mais me fait plutôt référence à Sprintf. "Perldoc -f Sprintf" me donne en effet tous les détails dont j'ai besoin, un peu comme "homme printf". "Man 3 printf" Otoh me donne la page d'homme pour une bibliothèque OCAML. C'est sur un récent Kubuntu (avec OCAML installé évidemment!)



5
votes

au lieu de \% d'utilisation %% :)


0 commentaires

2
votes

Utilisez %% pour imprimer un seul%

printf "\t\t".$hour."00 HRS\t=>\t%.2f\t%.2f\t%.1f%%\n", $total, $max15, ($max15/$total*100);


0 commentaires

5
votes

%% pour un seul%


0 commentaires

3
votes

Sur le recul, il y avait une alternative brute qui aurait fait la même chose.

Imprimez le symbole '%' en tant que chaîne: P>

printf "\t\t".$hour."00 HRS\t=>\t%.2f\t%.2f\t%.1f%s\n", $total, $max15, ($max15/$total*100), "%";


0 commentaires

1
votes

Ceci est un peu délicat car la documentation du modèle de Printf est en fait Dans la documentation de Sprintf . Vous devez attraper cette ligne au milieu du paragraphe pour savoir qu'il y ait.


0 commentaires