IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C++ Discussion :

Trouver la largeur de la console


Sujet :

C++

  1. #1
    Membre averti
    Profil pro
    professeur des universités à la retraite
    Inscrit en
    Août 2008
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : professeur des universités à la retraite

    Informations forums :
    Inscription : Août 2008
    Messages : 364
    Points : 439
    Points
    439
    Par défaut Trouver la largeur de la console
    Dans une application console en C++, y a-t-il des moyens de déterminer à l'exécution la largeur de la console en nombre de caractères ?
    (Une fonction du genre largeur_console() qui renverrait le nombre de caractères d'une ligne de la console dans laquelle le programme est exécuté ?)

  2. #2
    Membre chevronné
    Avatar de Goten
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 580
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 580
    Points : 2 205
    Points
    2 205
    Par défaut
    Il n'a rien de standard pour ça. Ca va dépendre du systéme. Néanmoins la console fait en général 80 colonnes
    "Hardcoded types are to generic code what magic constants are to regular code." --A. Alexandrescu

  3. #3
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Je crois qu'il y a un truc du genre GetConsoleScreenBufferInfo() sous Windows.

    Sous *n*x, je ne sais pas.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  4. #4
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    Sans compter que ça peut changer en cours d'exécution...
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  5. #5
    Membre averti
    Profil pro
    professeur des universités à la retraite
    Inscrit en
    Août 2008
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : professeur des universités à la retraite

    Informations forums :
    Inscription : Août 2008
    Messages : 364
    Points : 439
    Points
    439
    Par défaut
    Oui... d'où l'intérêt de contrôler la chose, si c'était possible...

  6. #6
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 860
    Points
    11 860
    Par défaut
    Citation Envoyé par ptyxs Voir le message
    Oui... d'où l'intérêt de contrôler la chose, si c'était possible...
    Peux-tu expliquer pourquoi tu en aurais besoin ?
    En effet, tout ce qu'assure le C++, c'est que quand tu écris avec cout, tu envoies dans "la sortie standard", qui se trouve être une console sur Windows et les Unixes.
    Donc tout baser sur la console peut paraître un peu "bancal".

    Déjà, faut-il que ton appli soit multiplateforme ?
    Si non, Windows te permet de jouer avec la console, et tu as des "équivalents" sous Linux.

  7. #7
    Membre averti
    Profil pro
    professeur des universités à la retraite
    Inscrit en
    Août 2008
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : professeur des universités à la retraite

    Informations forums :
    Inscription : Août 2008
    Messages : 364
    Points : 439
    Points
    439
    Par défaut
    Je n'ai pas de projet particulier en tête, je me renseignais...
    A première vue, dans une application console, on peut imaginer avoir envie d'adapter le formatage de la sortie à la largeur de la console au moment où cette sortie a lieu. J'imagine en effet que cela soit très dépendant du système voire de l'utilitaire console utilisé.

  8. #8
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 860
    Points
    11 860
    Par défaut
    Le problème c'est que historiquement la console n'est utilisée que pour donner des informations, généralement celles qu'on a demandé au programme.

    Du genre ipconfig sous Windows, etc...
    Et dans ce genre de programmes on se fout royalement de la taille de la console, ils n'ont pas pour objectif d'afficher avec un bel alignement etc.

    Dès que tu veux un joli affichage ou quoi, je te conseille sincèrement de passer sur des IHM, si ton niveau te le permet.

  9. #9
    Membre chevronné
    Avatar de Goten
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 580
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 580
    Points : 2 205
    Points
    2 205
    Par défaut
    Ou si t'es un incurable de la console te tourner vers une bibliothèque comme ncurses (unix) et pdcurses (un portage windows).
    "Hardcoded types are to generic code what magic constants are to regular code." --A. Alexandrescu

  10. #10
    Membre averti
    Profil pro
    professeur des universités à la retraite
    Inscrit en
    Août 2008
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : professeur des universités à la retraite

    Informations forums :
    Inscription : Août 2008
    Messages : 364
    Points : 439
    Points
    439
    Par défaut
    Mais oui, mais oui... je suis bien d'accord avec tout ça !
    En fait je voulais juste savoir s'il y avait ici ou là un (ensemble de) moyens simples (sans doute variables selon les contextes) d'obtenir à l'intérieur d'un programme en C++ la largeur de la console en nombre de caractères... rien de plus... pas de consolite aiguë pour autant rassurez-vous...
    Merci à tous...

  11. #11
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Salut,
    Je crois qu'Alp t'a donné un peu le principe : ne pas tenir compte de la taille de la console (d'autant qu'elle peut être redirigée, vers un fichier par exemple) et si tu veux une sortie plus maîtrisée alors passer par une I.H.M. Les bibliothèques I.H.M. (wxWidgets ou MFC par expl, mais j'imagine qu'il en est de même avec Qt ou d'autres), ont souvent des outils de RAD permettant de construire rapidement des I.H.M plus ou moins simples/évoluées.

  12. #12
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 860
    Points
    11 860
    Par défaut
    Citation Envoyé par 3DArchi Voir le message
    Salut,
    Je crois qu'Alp t'a donné un peu le principe : ne pas tenir compte de la taille de la console (d'autant qu'elle peut être redirigée, vers un fichier par exemple) et si tu veux une sortie plus maîtrisée alors passer par une I.H.M. Les bibliothèques I.H.M. (wxWidgets ou MFC par expl, mais j'imagine qu'il en est de même avec Qt ou d'autres), ont souvent des outils de RAD permettant de construire rapidement des I.H.M plus ou moins simples/évoluées.
    VC++/Qt Creator pour Qt, Code::Blocks/wx-DevC++ pour wxWidgets, VC++ pour les MFC, par exemple.

  13. #13
    Membre averti
    Profil pro
    professeur des universités à la retraite
    Inscrit en
    Août 2008
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : professeur des universités à la retraite

    Informations forums :
    Inscription : Août 2008
    Messages : 364
    Points : 439
    Points
    439
    Par défaut
    Bon, merci, je verrai ça quand je me serai remis à Qt.

Discussions similaires

  1. Trouver la largeur et longueur d'une image en assets
    Par lamihck dans le forum Android
    Réponses: 1
    Dernier message: 22/02/2012, 13h11
  2. Ou trouver les log consoles ?
    Par Drannor dans le forum Administration système
    Réponses: 2
    Dernier message: 11/12/2005, 21h46
  3. Réponses: 2
    Dernier message: 21/05/2002, 10h25
  4. Réponses: 4
    Dernier message: 27/03/2002, 11h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo