A voir également:
- Centrer un texte dans c++
- Texte de chanson gratuit pdf - Télécharger - Vie quotidienne
- Transcription audio en texte word gratuit - Guide
- Excel cellule couleur si condition texte - Guide
- Mettre un texte en majuscule - Guide
- Texte barré whatsapp - Guide
2 réponses
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
ali.rachid
Messages postés
290
Date d'inscription
Statut
Membre
Dernière intervention
30
OK, Merci Dal