Bonjour à tous,
Déjà je suis nouveau sur ce forum donc voilà, inutile de me souhaiter la bienvenue je suis ici pour travailler!
Je vais pas passer par 4 chemins pour vous expliquer mon problème.
J'ai créé un programme, TVServer, et un autre, TVClient.
Dans ces deux programmes j'ai un output console basé sur qDebug. Voilà la seule portion de code sur quoi tout tient:
Afin d'avoir les accents etc. je préfère passer par UTF-8 plutôt qu'ASCII. Mais là n'est pas mon problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 void output(QString s) { qDebug(s.toUtf8().constData()); }
C e code a priori n'a rien de mauvais, il se compilait parfaitement jusqu'à aujourd'hu, où subitement, plus moyen de le compiler correectement! g++ me retourne systématiquement:
Je n'ai pas plus de détails que ça...
Code : Sélectionner tout - Visualiser dans une fenêtre à part /home/corentin/TVServer/common.cpp:8: error: format not a string literal and no format arguments
J'ai donc essayé de bidouiller un peu mon code pour donner ça:
Mais bien évidemment, ce n'est pas en passant par une variable que ça fonctionne mieux.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 void output(QString s) { const char* data = s.toUtf8().constData(); qDebug(data); }
Vous allez me dire, qDebug attend un const char*. Il l'a son pu**** de const char*!
Pourquoi il m'emmerde et refuse de compiler?
Je ne comlprends pas comment qDebug accepte une première fois un truc, et rejette ce même truc une seconde plus tard!
Question : Comment faire pour utiliser correctement qDebug? Ou alors avoir un truc style printf mais surtout ne jamais utiliser un truc du style
?
Code : Sélectionner tout - Visualiser dans une fenêtre à part qDebug("%s", data)
(edit : Je ne veux pas de ce code car il me produit un truc en console très bizarre quand la phrase est longue... Et ça m'intéresse pas du tout du tout)
Merci par avance de vos réponses
Cocodidou
Partager