Lorsqu’on souhaite développer une application en mode console avec Qt Creator (1.3.1) qui soit multi-plateforme Mac et Windows, il y a quelques problèmes à régler.
Comme exemple, nous allons essayer de faire fonctionner correctement le petit programme suivant :
#include <iostream> int main() { std::cout << "Quel est ton nom : "; std::string Nom; std::cin >> Nom; std::cout << "Salut " << Nom << " !\n"; return 0; }
Mac OS X
ur Mac OS X, avec la configuration par défaut, la sortie standard est dirigée sur l’onglet Sortie de l'application de Qt Creator. Cela pose néanmoins un problème de taille : cet onglet ne gère pas l’entrée standard. Notre programme simple ne fonctionnera donc pas.
Pour résoudre ce problème, il faut forcer l’exécution de notre programme dans un terminal.
Pour ce faire, il faut modifier les paramètres d’exécution du projet. Afficher les détails et cocher la case Exécuter dans un terminal.
Malheureusement, cette façon de faire amène encore un petit problème à résoudre.
Sur Mac OS X, c’est un terminal XTerm qui sera utilisé, mais dans la configuration standard de Qt Creator, l’application XTerm n’est pas trouvable. Il faut en fait préciser le chemin complet de l’application.
Ouvrir les préférences de Qt Creator et aller dans la configuration Environnement : Général.
Dans la zone Terminal, indiquer le chemin complet :
/usr/x11/bin/xterm -e
Windows
Sur Windows, la configuration par défaut démarre une fenêtre de commande, dans laquelle s’affiche la sortie standard. L’entrée standard est correctement gérée.
Par contre, il subsiste deux problèmes :
- Lorsque le programme est terminé, la fenêtre de commande disparaît immédiatement, ce qui empêche de voir la sortie finale du programme.
- Si l’on souhaite déboguer notre programme, la fenêtre de commande n’est plus ouverte et la sortie standard s’affiche dans l’onglet Sortie de l'application de Qt Creator. L’entrée standard n’est pas gérée.
Pour résoudre ces problèmes, il faut forcer l’exécution de notre programme dans un terminal.
Pour ce faire, il faut modifier les paramètres d’exécution du projet. Afficher les détails et cocher la case Exécuter dans un terminal.
Les deux
Notre programme fonctionne maintenant correctement, aussi bien en ce qui concerne la sortie standard que l’entrée standard. Le déboguage se fait également au travers du terminal.
Reste le problème des accents concernant la phrase automatique Appuyez sur ENTRÉE pour fermer cette fenêtre.
Pour se débarrasser de ces caractères cabalistiques, la solution la plus simple est de démarrer Qt Creator en anglais.