Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 17/11/2013, à 17:00

temps

[résolu] sprintf sous qt

Bonjour,

Je cherche à lancer une application avec argument en passant par system sous qt car si je mets le code de cette appli dans qt, celui-ci a parfois des ratés.

pour passer mes argument j'ai fais un sprintf

passeMoiLeSel = sprintf (gaveLe, "%d %d %d", valeur1, valeur2,  valeur3);

ça compile bien, l'application se lance, mais à la demande de lancement de la fonction utilisant sprintf tout plante

j'ai donc essayé autrement en utilisant

 QString resultat;
 QTextStream(&resultat) << "./synthqt " << valeur1 valeur2  valeur3;

mais la je ne compile plus, j'obtiens

cpp:3857: erreur : invalid use of incomplete type 'class QTextStream'

Est-ce que quelqu'un sait manipuler QTextStream et peut m'indiquer ?
Cordialement

Dernière modification par temps (Le 17/11/2013, à 18:55)


Parce que l'USB bootable est le support des systèmes experts,
Parce que l'USB bootable contient sa propre image au démarrage.
L'USB bootable permet de créer un monde à la dimension de son imagination
https://www.letime.net

Hors ligne

#2 Le 17/11/2013, à 17:43

darunia_goron

Re : [résolu] sprintf sous qt

passeMoiLeSel = sprintf (gaveLe, "%d %d %d", valeur1, valeur2,  valeur3);

Ce bout de code est très louche de mon point de vu mais tu ne nous donnes pas assez d'information pour conclure.
Poste le bout de code complet (déclaration et initialisation des variables gaveLe et passeMoiLeSel ainsi que l'appel à la fonction de lancement).


Pour la seconde partie,

QTextStream(&resultat) << "./synthqt " << valeur1 << valeur2  << valeur3;

me semblerait plus pertinent.

Hors ligne

#3 Le 17/11/2013, à 18:53

temps

Re : [résolu] sprintf sous qt

Bonjour,
Merci pour la réponse, le code louche est une utilisation standart de sprintf que j'utilise depuis des années. je détaillerai le code plus tard.

J'ai trouvé la solution, le problème est issus d'une habitude d'utiliser le C mais ici il n'est pas compatible sous qt, ici j'avais oublié que sous qt il faut marquer les espaces.

voici le code qui fonctionne bien et permet de remplacer sprintf sous qt

    void LM::passelecteur()
    {

 QString resultat;
  QTextStream(&resultat) << "./synthqt " << " "<<jo1<< " "<<jo2<< " "<<jo3<< " "<<jo4<< " "<<jo5<< " "<<jo6<< " "<<jo7<< " "<<jo8<< " "<<jo9<< " "<<jo10<< " "<<jo11<< " "<<jo12<< " "<<jo13<< " "<<jo14<< " "<<jo15<< " "<<jo16<< " "<<jo17<< " "<<jo18<< " "<<jo19<< " "<<jo20<< " "<<jo21<< " "<<jo22<< " "<<jo23<< " "<<jo24<< " "<<jo25<< " "<<jo26<< " "<<jo27<< " "<<jo28<< " "<<jo29<< " "<<jo30<< " "<<jo31<< " "<<jo32<< " "<<jo33<< " "<<jo34<< " "<<jo35<< " "<<jo36<< " "<<jo37<< " "<<jo38<< " "<<jo39<< " "<<jo40<< " "<<jo41<< " "<<jo42<< " "<<jo43<< " "<<jo44<< " "<<jo45<< " "<<jo46<< " "<<jo47<< " "<<jo48<< " "<<jo49<< " "<<jo50<< " "<<amplitude1<< " "<<amplitude2<< " "<<amplitude3<< " "<<amplitude4<< " "<<amplitude5<< " "<<amplitude6<< " "<<amplitude7<< " "<<amplitude8<< " "<<amplitude9<< " "<<amplitude10<< " "<<amplitude11<< " "<<amplitude12<< " "<<amplitude13<< " "<<amplitude14<< " "<<amplitude15<< " "<<amplitude16<< " "<<amplitude17<< " "<<amplitude18<< " "<<amplitude19<< " "<<amplitude20<< " "<<amplitude21<< " "<<amplitude22<< " "<<amplitude23<< " "<<amplitude24<< " "<<amplitude25<< " "<<amplitude26<< " "<<amplitude27<< " "<<amplitude28<< " "<<amplitude29<< " "<<amplitude30<< " "<<amplitude31<< " "<<amplitude32<< " "<<amplitude33<< " "<<amplitude34<< " "<<amplitude35<< " "<<amplitude36<< " "<<amplitude37<< " "<<amplitude38<< " "<<amplitude39<< " "<<amplitude40<< " "<<amplitude41<< " "<<amplitude42<< " "<<amplitude43<< " "<<amplitude44<< " "<<amplitude45<< " "<<amplitude46<< " "<<amplitude47<< " "<<amplitude48<< " "<<amplitude49<< " "<<amplitude50<< " "<<temps1<< " "<<temps2<< " "<<temps3<< " "<<temps4<< " "<<temps5<< " "<<temps6<< " "<<temps7<< " "<<temps8<< " "<<temps9<< " "<<temps10<< " "<<temps11<< " "<<temps12<< " "<<temps13<< " "<<temps14<< " "<<temps15<< " "<<temps16<< " "<<temps17<< " "<<temps18<< " "<<temps19<< " "<<temps20<< " "<<temps21<< " "<<temps22<< " "<<temps23<< " "<<temps24<< " "<<temps25<< " "<<temps26<< " "<<temps27<< " "<<temps28<< " "<<temps29<< " "<<temps30<< " "<<temps31<< " "<<temps32<< " "<<temps33<< " "<<temps34<< " "<<temps35<< " "<<temps36<< " "<<temps37<< " "<<temps38<< " "<<temps39<< " "<<temps40<< " "<<temps41<< " "<<temps42<< " "<<temps43<< " "<<temps44<< " "<<temps45<< " "<<temps46<< " "<<temps47<< " "<<temps48<< " "<<temps49<< " "<<temps50<< " "<<choixfront<< " "<<boucledefronts;

std::string current_locale_text = resultat.toLocal8Bit().constData();
/*std::string current_locale_text = qPrintable(resultat);*/

    qDebug(resultat.toLocal8Bit().constData());

        system(resultat.toLocal8Bit().constData());

    }

Pour le détail avec un bouton, je connecte la fonction passeLecteur
et avec la fonction passeLecteur je lance une appli en C qui convertit mon format audio aux formats compatibles avec la technologie des cartes audio actuelles. A l'origine, j'avais intégré la conversion audio dans la fonction passe lecteur, mais j'ai pu observer au début un décallage de la porteuse audio, ensuite d'une manière aléatoire assez rarement, des écrétages comme quand on enregistre mal un son. Ces effets n'apparaissent pas en C

Cordialement

Dernière modification par temps (Le 17/11/2013, à 18:56)


Parce que l'USB bootable est le support des systèmes experts,
Parce que l'USB bootable contient sa propre image au démarrage.
L'USB bootable permet de créer un monde à la dimension de son imagination
https://www.letime.net

Hors ligne