C - Mise en page sous forme de tableaux

[Résolu/Fermé]
Signaler
-
 Ben -
Bonjour,

J'ai un souci de mise en page en C. Voilà ce que je souhaiterai afficher dans la console.
Nom1 | Prenom1
Nom2 | Prenom2
etc

A priori rien de bien compliqué mais selon la taille du nom les informations ne sont pas nécessairement alignées. Y a-t-il un moyen simple d'afficher un bon alignement quelques soit la longueur du nom (j'ai essayé de bidouiller avec des tabulations mais c'est pas fameux j'ai toujours un souci avec les noms trop longs)?
Je précise que les informations sont extraites d'un fichier et sont affichés grâce à une boucle while donc je n'ai pas la possibilité de gérer l'affichage ligne par ligne (il y a plus d'une centaine de noms à afficher).

Je me doute que ça peut paraître assez dérisoire comme problème mais c'est pour un projet noté où la présentation ne peut pas être négligée.

Merci d'avance pour vos réponses.

4 réponses

Messages postés
85
Date d'inscription
lundi 28 avril 2008
Statut
Membre
Dernière intervention
30 juin 2009
5
utilise le \t

exemple:
#include "stdio.h"

main()
{
        printf("aaaaaa\t|bbbb\n");
        printf("cc\t|ddd\n");
}
Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 786
Salut,
Utilise tout simplement la largeur de champ avec printf.
Par exemple : printf("%10s",toto); affichera la variable toto et l'alignera sur 10 caractères.
Cdlt
0x0syscall ta solution ne fonctionne que si les chaines ne sont pas trop longues. En l'occurence avec ton exemple si tu mets genre 15 a à la suite cela ne fonctionne plus.

En revanche, en combinant les tabulations avec la solution de fiddy j'obtiens quelque chose d'un peu plus satisfaisant; par encore ce que j'attends exactement parce les noms sont "alignes" a droite. C'est toujours mieux que ce que j'avais avant.

Merci à vous deux pour vos réponses.

J'attends un peu avant de mettre le sujet comme résolu, si jamais quelqu'un me donne une autre façon de faire...
Finalement en cherchant encore un peu j'ai trouvé la propriété "-" qui permet d'aligner à gauche, combiné avec la solution de fiddy ca donne un truc du genre %-15s et ca me donne le résultat attendu.

Encore merci à vous deux :)