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

C Discussion :

Un bug ? oui mais ou ?


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 94
    Par défaut Un bug ? oui mais ou ?
    Bonsoir,

    voici mon petit prog :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    #include<stdio.h>
     
    main(){
           char cde[100], chemin1[40],chemin2[40];
           sprintf(chemin1,"c:\DreamTeam.jpg");
           sprintf(chemin1,"c:\new");
           sprintf(cde,"COPY %s %s",chemin1,chemin2);
           system(cde);
           system("pause");
           }
    lors de l'execution il ne fonctionne pas alors que si je tape la commande dans une fenetre de comande DOS, ca marche . . .
    OU est mon erreur ?

    Aidez moi svp :

    bonne soirée,

    Titmael

    Lors de la compilation : [Warning] unknown escape sequence '\D'
    Lors de l'exécution : Fichier spécifier introuvable

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    \\
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    PS: La déclaration de main() est incorrecte, le fichier d'en-tête <stdlib.h> devrait être inclus, et ton compilo est mal réglé car il aurait du te donner des warnings pour ça...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  4. #4
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 94
    Par défaut
    Oula !

    bon je vais tester la solution des 2 \ et pour info c'est du C, je suis dans le fofo langage C ^^


    Merci !

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    633
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 633
    Par défaut
    Bonjour,

    En C ou C++, il faut doubler le caractère \ pour qu'il soit utilisé tel quel, car il a une signification spéciale.

    Il faut donc que tu écrives
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ...
    sprintf(chemin1,"c:\\DreamTeam.jpg");
    ...
    ps : utilise la balise [code] au lieu de [quote]

  6. #6
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Par défaut
    Outre le probleme sur le caractere \ qu'il convient de doubler ou de remplacer par /, il y a egalement un probleme sur le nom des fichiers. En effet tu n'intialises pas chemin2 et tu ecrases chemin1.

    A priori, ce n'est pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
           sprintf(chemin1,"c:\new");
    mais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
           sprintf(chemin2,"c:\\new");

  7. #7
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    En résumé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    #include <stdio.h>
    #include <stdlib.h>
     
    int main(void)
    {
        char cde[100] = {0};
        char chemin1[40] = {0};
        chemin2[40] = {0};
     
        /* Dans ce cas, tu peux également utiliser la fonction snprintf() qui
            est standard C99. Si ton compilateur ne supporte pas C99, il n'est
            pas difficile de la réimplanter */
        sprintf(chemin1,"c:\\DreamTeam.jpg");
        sprintf(chemin2,"c:\\new");
        sprintf(cde, "COPY %s %s", chemin1, chemin2);
        system(cde);
     
        return EXIT_SUCCESS;
    }
    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  8. #8
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Si ton compilateur ne supporte pas C99, il n'est pas difficile de la réimplanter
    Faux, cela implique de recoder complètement sprintf() à moins d'avoir déjà une fonction non-standard dans la CRT qui fait plus ou moins le job, et faire un wrapper dessus (comme la fonction _snprintf()/_vsnprintf() de la CRT Microsoft).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  9. #9
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Citation Envoyé par Médinoc
    Faux, cela implique de recoder complètement sprintf() à moins d'avoir déjà une fonction non-standard dans la CRT qui fait plus ou moins le job, et faire un wrapper dessus (comme la fonction _snprintf()/_vsnprintf() de la CRT Microsoft).
    C'est vrai, j'étais un peu (voir même très) optimiste. Je m'y suis lancé. C'est un bon exercice, mais c'est loin d'être trivial. Donc, à priori, si notre compilateur ne supporte pas C99, il faut se contenter de sprintf, mais en faisant très attention à la taille des chaînes.

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  10. #10
    Membre émérite

    Profil pro
    Inscrit en
    Août 2003
    Messages
    878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 878
    Par défaut
    Citation Envoyé par Médinoc
    [...] à moins d'avoir déjà une fonction non-standard dans la CRT qui fait plus ou moins le job, et faire un wrapper dessus (comme la fonction _snprintf()/_vsnprintf() de la CRT Microsoft).
    En passant : c'est ce que fait la version de mingwex.

  11. #11
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 94
    Par défaut
    bon et bien merci de tous ces conseils, mon ptit log marche !

    Marci à tous !

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

Discussions similaires

  1. Requete imbriquée, oui mais...
    Par zax-tfh dans le forum Requêtes
    Réponses: 6
    Dernier message: 24/03/2005, 01h48
  2. Réponses: 2
    Dernier message: 03/03/2005, 23h23
  3. Création de logiciel, oui, mais quelle base de donnée ?
    Par Acti dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 17/02/2005, 12h41
  4. HomeDB, oui mais comment ?
    Par Gregouz dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 27/10/2004, 15h27
  5. [APPLET-SERVLET] download oui mais upload non ...
    Par meufeu dans le forum Applets
    Réponses: 7
    Dernier message: 09/08/2004, 14h36

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