Centrer un texte dans c++
Fermé
ali.rachid
Messages postés
292
Date d'inscription
vendredi 15 mai 2015
Statut
Membre
Dernière intervention
22 juin 2021
-
Modifié le 16 févr. 2019 à 00:48
ali.rachid Messages postés 292 Date d'inscription vendredi 15 mai 2015 Statut Membre Dernière intervention 22 juin 2021 - 22 févr. 2019 à 20:55
ali.rachid Messages postés 292 Date d'inscription vendredi 15 mai 2015 Statut Membre Dernière intervention 22 juin 2021 - 22 févr. 2019 à 20:55
A voir également:
- Centrer un texte dans c++
- Mettre un texte en majuscule - Guide
- Retrouver un texte caché dans une image ✓ - Forum Graphisme
- Excel cellule couleur si condition texte - Guide
- Comment retranscrire un entretien audio en texte - Guide
- Dans le texte, un seul mot a réellement été écrit en lettres capitales (majuscules). ✓ - Forum Word
2 réponses
[Dal]
Messages postés
6174
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
2 février 2024
1 083
Modifié le 18 févr. 2019 à 13:00
Modifié le 18 févr. 2019 à 13:00
Salut ali.rachid,
Tu ne peux pas le faire en C, ni en C++ standard, car il n'y a aucun moyen de déterminer la largeur de la console prévu dans ces langages en standard.
Tu peux, par contre, certainement utiliser les API propres à ton système d'exploitation si tu veux faire cela (le code ne sera pas standard, et ne fonctionnera que pour ce système).
Par exemple, sous Windows avec GetConsoleScreenBufferInfo().
Ensuite, pour centrer un texte, tu peux soit l'afficher en ajoutant des espaces avant le texte, pour le placer à la colonne que tu souhaites, ou utiliser l'API de ton système d'exploitation pour déplacer le curseur d'affichage aux coordonnées de la console où tu veux écrire (tant qu'à faire).
Par exemple, sous Windows avec SetConsoleCursorPosition().
En C, cela donnerait quelque chose comme ceci (non testé, je suis sous Linux) :
Si tu veux vraiment faire du C++, remplace les entêtes par les entêtes C++, le
Dal
Tu ne peux pas le faire en C, ni en C++ standard, car il n'y a aucun moyen de déterminer la largeur de la console prévu dans ces langages en standard.
Tu peux, par contre, certainement utiliser les API propres à ton système d'exploitation si tu veux faire cela (le code ne sera pas standard, et ne fonctionnera que pour ce système).
Par exemple, sous Windows avec GetConsoleScreenBufferInfo().
Ensuite, pour centrer un texte, tu peux soit l'afficher en ajoutant des espaces avant le texte, pour le placer à la colonne que tu souhaites, ou utiliser l'API de ton système d'exploitation pour déplacer le curseur d'affichage aux coordonnées de la console où tu veux écrire (tant qu'à faire).
Par exemple, sous Windows avec SetConsoleCursorPosition().
En C, cela donnerait quelque chose comme ceci (non testé, je suis sous Linux) :
#include <stdio.h> #include <string.h> #include <windows.h> int main(void) { HANDLE hStdout; CONSOLE_SCREEN_BUFFER_INFO csbiInfo; char s[] = "texte"; hStdout = GetStdHandle(STD_OUTPUT_HANDLE); if (! GetConsoleScreenBufferInfo(hStdout, &csbiInfo)) { printf("Error doing GetConsoleScreenBufferInfo (%d)\n", GetLastError()); return 1; } csbiInfo->dwCursorPosition.Y = csbiInfo->dwSize.Y / 2 - strlen(s) / 2; if (! SetConsoleCursorPosition(hStdout, csbiInfo->dwCursorPosition)) { printf("Error doing SetConsoleCursorPosition (%d)\n", GetLastError()); return 1; } printf("%s\n", s); return 0; }
Si tu veux vraiment faire du C++, remplace les entêtes par les entêtes C++, le
printfpar un
cout,...
Dal
nulenmathe
Messages postés
425
Date d'inscription
dimanche 7 septembre 2014
Statut
Membre
Dernière intervention
31 juillet 2019
149
16 févr. 2019 à 02:09
16 févr. 2019 à 02:09
Bonjour,
Et pourquoi ne pas faire une recherche google plutôt que de créer un Nième topic sur le sujet ?
Merci
Et pourquoi ne pas faire une recherche google plutôt que de créer un Nième topic sur le sujet ?
Merci
ali.rachid
Messages postés
292
Date d'inscription
vendredi 15 mai 2015
Statut
Membre
Dernière intervention
22 juin 2021
29
22 févr. 2019 à 20:54
22 févr. 2019 à 20:54
Salut,
Pour que j'ai posté ce topic, c'est que j'ai fais des milliers de recherches sur Google.
Merci.
Pour que j'ai posté ce topic, c'est que j'ai fais des milliers de recherches sur Google.
Merci.
22 févr. 2019 à 20:55