CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[C] Format pour printf

Babybel2001
Babybel2001
Niveau 9
10 novembre 2017 à 18:39:13

Bonsoir à tous !
J'ai deux tableaux de même taille et je veux les afficher comme ça:
tableau 1: --1-- --2-- --3-- --4-- ...
tableau 2: --1-- --2-- --3-- --4-- ...
Avec chaque colonne alignée bien entendue.

Ce que j'ai fait jusqu'à présent, j'ai utilisé cette ligne:printf("%*f\t", max_width, dat->dble_props[i] ); qui va toujours afficher max_width caractère dans le format f, donc en controlant le nombre de bits je suis parvenue à aligner les deux lignes.
Le problème apparait quand l'affichage d'une ligne dépasse la longueur de la fenetre du terminal, j'obtiens cela:
tableau 1: --1-- --2-- --3-- --4-- ...
--n-1-- --n--
tableau 2: --1-- --2-- --3-- --4-- ...
--n-1-- --n--

Merci de votre aide :ok:

aAardvark
aAardvark
Niveau 75
10 novembre 2017 à 19:47:46

En gros tu voudrais que ça fasse

tableau 1: --1-- --2-- --3-- --4-- ...
tableau 2: --1-- --2-- --3-- --4-- ...
(tableau 1: )--n-1-- --n--
(tableau 2: )--n-1-- --n--

comme ça c'est ça ?

Sinon je ne pense pas qu'il y ait de règle pour la largeur des terminals (terminaux ? :hap:). Du coup faudra voir s'il y a un moyen d'avoir la longueur du terminal et faire le calcul ensuite... mais c'est une solution qui me paraît peu élégante et peu portable (même si tu t'en fiches sans doute du moment que ça marche)

Éventuellement partir sur une longueur de ligne fixe et arbitraire qui tiendra sur une majorité de terminaux, par exemple 10 ou 20 nombre affichés. Si j'ai bien compris ce que tu voulais faire.

Babybel2001
Babybel2001
Niveau 9
11 novembre 2017 à 17:11:59

Merci de ta réponse, tu pointes du doigt quelque chose que je n'a pas mentionné: je souhaiterais que ce soit portable. Donc exit les bibliothèques propriétaires, les fonctions relatives à un système ou à un terminal particulier.. Bon la moindre des choses est que ça marche sur UNIX ;)
J'avais pensé à fixer la longueur de ligne, mais c'est peu élégant comme tu dis..
Je cherche un exemple, pour éventuellement étudier le code source et vous montrer..

Oh et c'est bien terminaux :)

Babybel2001
Babybel2001
Niveau 9
11 novembre 2017 à 17:26:08

:up:
Voila un exemple où c'est dans le même genre que ce que je veux obtenir:
https://image.noelshack.com/fichiers/2017/45/6/1510417447-41v14.png
C'est un chargement de données via la fonction "read.tables" de R. Vous pouvez voir un échantillon de 41 variables décrites chacune par 14 attributs. J'espère que c'est plus clair :ok:

Babybel2001
Babybel2001
Niveau 9
13 novembre 2017 à 09:27:19

:up:

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment