Comportement bizarre de qDebug
Bonjour à tous,
Déjà je suis nouveau sur ce forum donc voilà, inutile de me souhaiter la bienvenue je suis ici pour travailler! :mouarf:
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:
Code:
1 2 3 4 5
|
void output(QString s)
{
qDebug(s.toUtf8().constData());
} |
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.
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:
Code:
/home/corentin/TVServer/common.cpp:8: error: format not a string literal and no format arguments
Je n'ai pas plus de détails que ça...
J'ai donc essayé de bidouiller un peu mon code pour donner ça:
Code:
1 2 3 4 5 6
|
void output(QString s)
{
const char* data = s.toUtf8().constData();
qDebug(data);
} |
Mais bien évidemment, ce n'est pas en passant par une variable que ça fonctionne mieux.
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
?
(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