IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Discussion :

[Débutant] problème avec les types de variables

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 103
    Points : 56
    Points
    56
    Par défaut [Débutant] problème avec les types de variables
    Bonjour à tous !

    J'ai trouvé des topics traitant du même problème sur le forum, mais aucun ne m'a fourni de réponse...
    Je dois appeler une fonction prenant en paramètre deux variables de type char*.
    J'ai le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    QString srctemp=ui.source->text();
    QString dsttemp=ui.destination->text();
    string src,dst;
    src=srctemp.toStdString();
    dst=dsttemp.toStdString();
    char* src2 = src.c_str(); !!
    char* dst2 = dst.c_str(); !!
    this->copie(src2,dst2);
    Les deux lignes marquées avec "!!" produisent l'erreur "invalid conversion from 'const char*' to 'char*'".
    Je ne sais plus trop quoi faire
    Quelqu'un a une idée ?

    Merci

  2. #2
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Oula,
    que cherche tu as faire? T'as fonction est juste une copy de string ou c'est un exemple??

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 103
    Points : 56
    Points
    56
    Par défaut
    Bonjour !

    En fait la fonction "copie" est une fonction de copie de fichiers qui prend en paramètre une source et une destination. Ces deux arguments sont de type char*, or le ui.source->text() retourne un QString...
    Je dois donc transformer ce QString en char*
    Une idée ?

    Merci

  4. #4
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Citation Envoyé par mitmit Voir le message
    Bonjour !

    En fait la fonction "copie" est une fonction de copie de fichiers qui prend en paramètre une source et une destination. Ces deux arguments sont de type char*, or le ui.source->text() retourne un QString...
    Je dois donc transformer ce QString en char*
    Une idée ?

    Merci
    Pour commencer, peut tu modifier l'entête de tafonction copie pour quel prenne des const char *. Ou au mieux des std::string??

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 103
    Points : 56
    Points
    56
    Par défaut
    heu le problème est que ma fonction copie() fait appel à la fonction open() qui prend en argument un nom de fichier de type char*
    la fonction open() ne passe pas avec un paramètre de type const char*
    je vais refaire des tests mais il me semble que la seule solution est de passer de QString à char*...

    merci pour tes réponses en tout cas

  6. #6
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    ????
    open viens d'ou???

    sinon tu va être obligé de créer tes string de type C...
    Mais c'est vraiment pas le plus propre. A mon goût du moins


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    QString srctemp=ui.source->text();
    QString dsttemp=ui.destination->text();
    //string de type C detaille max 1024
     
    char src2[1024]; 
    char dst2[1024];
    strcpy(src2, srctemp.toStdString().c_str()); 
    strcpy(dst2, dsttemp.toStdString().c_str()); 
    this->copie(src2,dst2);

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 103
    Points : 56
    Points
    56
    Par défaut
    open est une fonction C permettant d'ouvrir un fichier... (trouvée sur le net)
    elle prend en paramètre un nom de fichier et le mode d'ouverture (lecture seule, écriture seule, lecture/écriture, etc...)
    je m'y prend peut être mal, comme l'indique le titre je débute dans ce domaine
    je vais essayer ta méthode en tout cas

    merci encore pour ton aide

    [EDIT] : problème résolu merci beaucoup

  8. #8
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Citation Envoyé par mitmit Voir le message
    open est une fonction C permettant d'ouvrir un fichier... (trouvée sur le net)
    elle prend en paramètre un nom de fichier et le mode d'ouverture (lecture seule, écriture seule, lecture/écriture, etc...)
    je m'y prend peut être mal, comme l'indique le titre je débute dans ce domaine
    je vais essayer ta méthode en tout cas

    merci encore pour ton aide
    donc ca prend un const char *
    mais ca c'est C.
    Pourquoi n'utilise tu pas les std::ifstream / std::ofstream???
    regarde dans la partie C++ du site. Tu trouvera beaucoup de cours, tutoriels et une FAQ de trés bonne qualité.

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 103
    Points : 56
    Points
    56
    Par défaut
    Oui je me tourne vers les fonctions C++...
    Honte à moi j'ai fait la confusion C / C++

    Merci pour les conseils ^^

  10. #10
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    N'hésite pas à demander ici pour les questions Qt bien sur

  11. #11
    Membre expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Points : 3 266
    Points
    3 266
    Par défaut
    Salut,

    Encore plus simple: QFile::copy qui prend 2 QString en entrée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec les types de variable
    Par binhjuventus dans le forum C++Builder
    Réponses: 2
    Dernier message: 13/07/2006, 13h30
  2. [débutant] problème avec les arguments de fopen
    Par Anouschka dans le forum C++
    Réponses: 13
    Dernier message: 23/02/2006, 15h56
  3. [Débutant] Problème avec les paramètres d'une proc stockée
    Par babulior dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 28/06/2005, 16h38
  4. [Débutant]Problème avec les timers
    Par mickael777 dans le forum MFC
    Réponses: 1
    Dernier message: 11/04/2005, 12h00
  5. [Débutant][Phppgadmin] problème avec les types
    Par PoY dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 19/08/2004, 18h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo