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 :

Erreur de compilation que je ne comprends pas


Sujet :

C

  1. #1
    Membre averti
    Inscrit en
    Juin 2010
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 32
    Par défaut Erreur de compilation que je ne comprends pas
    Bonjour,

    je viens de commencer d'apprendre la programmation en C et la j'ai une petite question j'ai fait une petit bout de code en c et le compilateur m'affiche des erreurs du genre :
    missing terminating ' character
    syntax error before '{' token ...
    voici la partie qui cause problème pourtant ce n'est qu'une application de la condition if

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    const gchar* tableau[40];
    char cheminAdapt[40];
    int j;
    int i;
     
    for(i=0 ; i<40 ; i++) 
    {
            tableau[40]= chemin;
    }
     
    for (j=0;j<40;j++)
    { 
        for(i=0 ; i<40 ; i++) 
        {
          if (tableau[i]!='\')
     
          {  cheminAdapt[j]==tableau[i];
             j++;
             i++;
          }
         else 
     
          {   cheminAdapt[j]==tableau[i];
             j++;
             cheminAdapt[j]='\';
             i++;
             j++;
         }
    }
    }

    pour la variable chemin elle est dans l'autre bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    const gchar* chemin;
    chemin = gtk_file_selection_get_filename(GTK_FILE_SELECTION (file_selection) );
    en bref dans la variable chemin on récupère un chemin et afin d'utiliser le chemin récupérer qui est celui d'une image que je vais par la suite afficher il me faut récupérer chaque \ dans le chemin par \\ sinon je ne peux pas afficher l'image.

  2. #2
    Membre Expert
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Par défaut
    Bonjour,

    1- (bouton # de l'éditeur, édite ton message pour corriger ça )
    2- Indente ton code, tu y verras déjà plus clair

    Ensuite, pour les "\", le caractère est considéré comme un caractère d'échappement , qui te permet de former des caractères spéciaux comme un saut de ligne (\n) ou encore une tabulation (\t)...

    C'est donc pour ça qu'il faut faire "\\" pour afficher un "\" en C(++)

  3. #3
    Membre averti
    Inscrit en
    Juin 2010
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 32
    Par défaut
    Merci pour ta réponse oui justement c'est pour cette raison la que je récupère le chemin et que j'essaie d'introduire une deuxième \ . (le but de ce bout de code)

    au fait après avoir récupéré le chemin qui est par exemple de cette forme la C:\rima\128.png à moi après de mettre tout ça dans un tableau pour pouvoir vérifier la ou je trouve un \ et le remplacer par deux \ histoire de permettre au C de détecter le bon chemin et le rendre de cette forme la C:\\rima\\128.png

    sinon je suis désolée de te déranger encore une fois mais tu veux dire quoi au juste par éditer ? car depuis que je me suis mise à la programmation j'ai découvert que même les mots qu'en utilise quotidiennement avaient un autre sens

  4. #4
    Membre Expert
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Par défaut
    Je parlais d'éditer ta discussion, c'est-à-dire de modifier le message (via le bouton "Éditer" qui se trouve en bas de tes messages sur le forum).

    Ça n'a donc rien à voir avec ton code

    Et, je crois que tu n'a pas trop compris l'histoire des \...

    Si une fonction te renvoie un char* avec des "\", tu n'as besoin de ne rien modifier,l'histoire des "\" et des "\\" est géré par la fonction.

    C'est seulement quand tu fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    char *chemin = "C:\\toto\\sous-dossier";
    que tu as besoin de mettre des "\\" ,pour dire au C que tu veux le caractère '\' et non un caractère spécial.

    Donc ta chaîne qui sera en mémoire (et quand tu l'afficheras) sera "C:\toto\sous-dossier".

    Donc quand tu fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    chemin = gtk_file_selection_get_filename(GTK_FILE_SELECTION (file_selection) );
    , tu n'as rien besoin de modifier

  5. #5
    Membre averti
    Inscrit en
    Juin 2010
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 32
    Par défaut
    Je te remercie beaucoup pour ton aide effectivement tu m'as apporté la réponse dont j'avais besoin reste maintenant juste à trouver une manière d'afficher cette fameuse image lol bonne journée.

  6. #6
    Membre Expert
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Par défaut
    Bonjour,

    Bah tant qu'on y est, montre-nous ton code pour afficher l'image (entre balise [code ] et [/code] évidemment ; )

  7. #7
    Membre averti
    Inscrit en
    Juin 2010
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 32
    Par défaut Demande d'aide
    Comme tu as du le deviner lol en ce moment j'utilise GTK pour une application d'analyse d'image et afin d'afficher une image dont le chemin a été récupère par la fonction suivante :

    chemin = gtk_file_selection_get_filename(GTK_FILE_SELECTION (file_selection) );

    j'ai en premier lieu crée une nouvelle fenêtre ensuite pour l'affichage de l'image dans la fenêtre j'ai utilisé ce bout de code mais la fenêtre s'affiche vide:

    GtkWidget *imageTraitement;

    imageTraitement = gtk_image_new_from_file(chemin[30]);

    gtk_box_pack_start(GTK_BOX(fenetreImage),imageTraitement, FALSE, FALSE, 5);

    gtk_widget_show(imageTraitement);
    gtk_widget_show_all(fenetreImage);

    tout en sachant que dans la fenêtre y a pas un autre widget donc pas besoin de créer un box. de ma part je pense que le problème est certainement dans cette partie

    imageTraitement = gtk_image_new_from_file(chemin[30]);

    mais je ne connais pas une autre manière de lui passer le chemin vu que je ne peux pas faire "chemin" sinon il le prendra pour une chaine de caractère non pas pour le contenu du chemin.

  8. #8
    Membre averti
    Inscrit en
    Juin 2010
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 32
    Par défaut Demande d'aide
    Je viens de trouver cette fonction, je crois que ca pourrai marcher

    gtk_window_show(chemin);

    mais je ne sais pas pour quelle raison il m'affiche

    indefined reference to gtk_window_show

  9. #9
    Membre Expert
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Par défaut
    Bonjour,

    Bah un chemin, c'est une chaine de caractère,non?

    Bref, essaie avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    imageTraitement = gtk_image_new_from_file(chemin);
    , ça devrait marcher

    (en faisant chemin[30],tu récupères juste un caractère )

  10. #10
    Membre averti
    Inscrit en
    Juin 2010
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 32
    Par défaut Demande d'aide
    Merci infiniment pour ton aide effectivement cette solution marche je ne vois pas comment je n'ai pas penser à ça lol surtout que je l'avais déjà utilisé. afin que cette discussion puisse aider d'autres débutants comme moi je mets exactement ce que j'ai mis dans mon code

    imageTraitement = gtk_image_new_from_file(chemin);
    gtk_container_add(GTK_CONTAINER(fenetreImage), imageTraitement);



    avec fenetreImage un widget de type fenêtre.

    encore une fois merci c'est vraiment gentil de ta part

  11. #11
    Membre Expert
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Par défaut
    De rien

    Je ne fais que mon devoir

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

Discussions similaires

  1. Message d'erreur du compilateur que je ne comprends pas
    Par ram-0000 dans le forum Visual C++
    Réponses: 6
    Dernier message: 21/07/2010, 13h45
  2. Réponses: 2
    Dernier message: 30/03/2010, 12h07
  3. [MySQL] J'ai une erreur (requete sql)que je ne comprends pas du tout Mysqlfetcharray()
    Par metou2703 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 28/09/2009, 13h52
  4. Réponses: 4
    Dernier message: 03/09/2008, 01h44
  5. Erreur avec unlink que je ne comprend pas
    Par Prosis dans le forum Langage
    Réponses: 10
    Dernier message: 05/06/2007, 15h14

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