Comment puis-je tamponner un printf pour prendre en compte les signes négatifs et les nombres de longueurs variables?

J’essaie de sortir des nombres dans un fichier journal et je veux append un nombre de flottants via la fonction printf pour produire:

  058.0 020.0 038.0 -050.0 800.0 150.0 100.0 

Actuellement je fais ça:

 printf("% 03.1f\n", myVar); 

… où myVar est un char. Le résultat de cette déclaration ressemble à ceci:

 58.0 20.0 38.0 -50.0 800.0 150.0 100.0 

D’après ce que j’ai lu , mon code devrait produire la sortie que j’ai mentionnée en haut de cet article, mais il est clair que quelque chose ne va pas. Pouvez-vous utiliser un seul drapeau à la fois? ..Ou est-ce qu’il y a autre chose qui se passe ici?

Le spécificateur de largeur est la largeur complète:

 printf("%05.1f\n", myVar); // Total width 5, pad with 0, one digit after . 

Pour obtenir votre format attendu:

 printf("% 06.1f\n", myVar);