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 :

unknown escape sequence


Sujet :

C

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 190
    Par défaut unknown escape sequence
    Bonjour ! je suis en train de coder un "lecteur" d'images Bitmap, pour l'instant j'en suisà la creation d'une copie de l'image de départ, seulement, à la compilation j'ai une sérieu de warnings me disant "unknown escape sequence \D" ou n'impoorte quelle autre lettre, je ne vois pas d'ou peut venir cette erreur.
    Voici mon code :

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    /*Structures : */
     
    typedef struct
    {
      unsigned short signature;
      unsigned int taille_fichier;
      unsigned int reserve;
      unsigned int offset_donnees;
    }entete_fichier;
     
    typedef struct
    {
      unsigned int taille_entete;
      unsigned int largeur;
      unsigned int hauteur;
      unsigned short nombre_plans;
      unsigned short profondeur;
      unsigned int compression;
      unsigned int taille_donnees_image;
      int resolution_horizontale;
      int resolution_verticale;
      unsigned int taille_palette; /* en nb de couleurs*/
      unsigned int nombre_de_couleurs_importantes; /*0*/
    }entete_bitmap;
     
    typedef struct{
      entete_fichier fichier;
      entete_bitmap bitmap;
    }entete_bmp;
     
     
    unsigned short lire_2_octets (int de);
    unsigned int lire_4_octets (int de);
    int lire_entete (int de,entete_bmp *entete);
    int ecrire_4_octets(int vers, unsigned int valeur);
    int ecrire_2_octets(int vers, unsigned int valeur);
    int ecrire_entete(int vers, entete_bmp *entete);
    int verifier_entete (entete_bmp *entete);
    unsigned char* allouer_pixels(entete_bmp *entete);
    int lire_pixels(int de, entete_bmp *entete, unsigned char *pixels);
    int ecrire_pixels(int de, entete_bmp *entete, unsigned char *pixels);
    int copier_bmp (int de, int vers);
    void rouge(entete_bmp *entete, unsigned char *pixels);
     
     
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <fcntl.h>
    #include <unistd.h>
    #include <stdio.h>
    #include "modif_bmp.h"
     
    int main(int argc, char** argv){
     
      int de,vers;
     
        de = open("C:\Documents and Settings\Pierre\Bureau\TP C\TP7C\test1", O_RDONLY);
     
        ecrire_2_octets(de,vers);
        close(fichier);
     
      getch();
      return 0;
    }
     
    #include <unistd.h>
    #include "modif_bmp.h"
    #include <stdlib.h>
     
     
    unsigned int lire_4_octets (int de){
      unsigned int buffer;
      read(de,&buffer,4);
      return buffer;
    }
     
    unsigned short lire_2_octets (int de){
      unsigned short buffer;
      read(de,&buffer,2);
      return buffer;
    }
     
    int lire_entete (int de,entete_bmp *entete){
     
      (*entete).fichier.signature = lire_2_octets(de);
      (*entete).fichier.taille_fichier = lire_4_octets(de);
      (*entete).fichier.reserve = lire_4_octets(de);
      (*entete).fichier.offset_donnees = lire_4_octets(de);
      (*entete).bitmap.taille_entete = lire_4_octets(de);
      (*entete).bitmap.largeur = lire_4_octets(de);
      (*entete).bitmap.hauteur = lire_4_octets(de);
      (*entete).bitmap.nombre_plans = lire_2_octets(de);
      (*entete).bitmap.profondeur = lire_2_octets(de);
      (*entete).bitmap.compression = lire_4_octets(de);
      (*entete).bitmap.taille_donnees_image = lire_4_octets(de);
      (*entete).bitmap.resolution_horizontale = lire_4_octets(de);
      (*entete).bitmap.resolution_verticale = lire_4_octets(de);
      (*entete).bitmap.taille_palette = lire_4_octets(de);
      (*entete).bitmap.nombre_de_couleurs_importantes = lire_4_octets(de);
      return 0; 
    }
     
    int ecrire_4_octets(int vers, unsigned int valeur){
      write(vers,&valeur,4);
      return 0;
    }
     
    int ecrire_2_octets(int vers, unsigned int valeur){
      write(vers,&valeur,2);
      return 0;
    }
     
    int ecrire_entete(int vers, entete_bmp *entete){
       ecrire_2_octets(vers,(*entete).fichier.signature);
       ecrire_4_octets(vers,(*entete).fichier.taille_fichier);
       ecrire_4_octets(vers,(*entete).fichier.reserve);
       ecrire_4_octets(vers,(*entete).fichier.offset_donnees);
       ecrire_4_octets(vers, (*entete).bitmap.taille_entete);
       ecrire_4_octets(vers,  (*entete).bitmap.largeur);
       ecrire_4_octets(vers,(*entete).bitmap.hauteur);
       ecrire_2_octets(vers,(*entete).bitmap.nombre_plans);
       ecrire_2_octets(vers,(*entete).bitmap.profondeur);
       ecrire_4_octets(vers, (*entete).bitmap.compression);
       ecrire_4_octets(vers, (*entete).bitmap.taille_donnees_image);
       ecrire_4_octets(vers,(*entete).bitmap.resolution_horizontale);
       ecrire_4_octets(vers,(*entete).bitmap.resolution_verticale);
       ecrire_4_octets(vers,(*entete).bitmap.taille_palette);
       ecrire_4_octets(vers,(*entete).bitmap.nombre_de_couleurs_importantes);
       return 0; 
    }
     
    int verifier_entete (entete_bmp *entete){
      if((*entete).bitmap.profondeur == 24){
        return 1;
      }
      return 0;
    }
     
    unsigned char* allouer_pixels(entete_bmp *entete){
      int nbCases = ((*entete).bitmap.hauteur*3)*((*entete).bitmap.largeur*3);
      unsigned char* tab = malloc(nbCases);
      return tab;
    }
     
    int lire_pixels(int de, entete_bmp *entete, unsigned char *pixels){
      read(de, pixels, ((*entete).bitmap.largeur)*3)*((*entete).bitmap.hauteur*3);
      return 0;
    }
     
    int ecrire_pixels(int vers, entete_bmp *entete, unsigned char *pixels){
        write(vers, &pixels, entete);
        return 0;
    }
     
    int copier_bmp (int de, int vers){
        entete_bmp entete;
        unsigned char *pixels;
     
        /*Lecture du fichier source*/
        lire_entete(de,&entete);
        pixels=allouer_pixels(&entete);
        lire_pixels(de,&entete,pixels);
     
        /*Ecriture du fichier destination*/
        ecrire_entete(vers, &entete);
        ecrire_pixels(vers,&entete,pixels);
     
        /*On libere les pixels*/
        free(pixels);
        return 1;/*Bonne execution*/
    }
     
    void rouge(entete_bmp *entete, unsigned char *pixels){
     
    }

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 117
    Par défaut
    il faut doubler tes antislashs pour les noms de dossiers windows
    "C:\\Documents and Settings"

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 190
    Par défaut
    merci beaucoup ! je laisse le sujet ouvert au cas où j'aurais d'autres erreurs. En tout cas merci ! je n'aurais pas deviné tout seul ^^

  4. #4
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Ghunter59 Voir le message
    merci beaucoup ! je laisse le sujet ouvert au cas où j'aurais d'autres erreurs. En tout cas merci ! je n'aurais pas deviné tout seul ^^
    Euh, c'est pourtant écrit dans ton livre de C...

  5. #5
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par john stedd Voir le message
    il faut doubler tes antislashs pour les noms de dossiers windows
    Aucun rapport avec Windows. Le caractère \ se code \\ en C dans les constantes caractères ('\\') et chaines ("\\"). C'est du C basique...

    De plus, sous Windows, on peut utiliser \ ou / pour séparer les noms de chemin.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 117
    Par défaut
    Aucun rapport avec Windows. Le caractère \ se code \\ en C dans les constantes caractères ('\\') et chaines ("\\"). C'est du C basique...

    De plus, sous Windows, on peut utiliser \ ou / pour séparer les noms de chemin.
    oups pardon

  7. #7
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 190
    Par défaut
    ok ok je retiens ! et "c"est ecrit dans ton livre de C" ba mon livre de C c'est plutot mes cours donc non c'est pas ecrit dedans etant donné que l'on code exclusivement sous Unix (je code sous winodws simplement chez moi pour m'entrainer et finir mes tp !).

  8. #8
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Ghunter59 Voir le message
    ok ok je retiens ! et "c"est ecrit dans ton livre de C" ba mon livre de C c'est plutot mes cours donc non c'est pas ecrit dedans etant donné que l'on code exclusivement sous Unix (je code sous winodws simplement chez moi pour m'entrainer et finir mes tp !).
    Alors met / au lieu de \, comme ça c'est portable... Encore une fois, le fait que "\" se code "\\" en C n'a rien à voir avec Windows... Tu ne comprends pas ce que j'écris ?

    D'autre part, faire du développement en C sans un livre de référence est, disons, aventureux... Il y a des réferences de livres et de tutoriels sur ce site (et le mien).

  9. #9
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 190
    Par défaut
    bien sur que je comprend, simplement ... je n'avais pas percuté c'est vrai que ca parait plutot logique etant donné que le \ est un caractere de protection ... en tout cas je suis en train d'étudier l'achat d'un livre, je vais aller voir sur le forum et votre page ! merci

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 117
    Par défaut
    question livre, je déconseille fortement "Le langage C" de Aitken et Jones, car contrairement à ce qui est indiqué il ne respecte pas la norme (sauf dans la dernière annexe!!)

  11. #11
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Ghunter59 Voir le message
    bien sur que je comprend, simplement ... je n'avais pas percuté c'est vrai que ca parait plutot logique etant donné que le \ est un caractere de protection ... en tout cas je suis en train d'étudier l'achat d'un livre, je vais aller voir sur le forum et votre page ! merci
    Le K&R2 est l'incontournable livre de référence du langage C.

    C'est aussi un cours de C, mais ce n'est pas un modèle de pédagogie. Disons qu'il ne convient pas à tout le monde.

Discussions similaires

  1. "invalid escape sequence" avec un regexp_replace
    Par fandreoli dans le forum Général Java
    Réponses: 2
    Dernier message: 28/08/2014, 09h35
  2. escape sequence ricoh mfp pour les tray 1 et 4
    Par cpf2006 dans le forum Périphériques
    Réponses: 0
    Dernier message: 02/04/2012, 15h31
  3. interpréter des escape sequences
    Par morgalel dans le forum Général Java
    Réponses: 1
    Dernier message: 08/03/2008, 16h47
  4. unrecognized character escape sequence
    Par beb30 dans le forum MFC
    Réponses: 15
    Dernier message: 16/05/2006, 15h55
  5. Réponses: 15
    Dernier message: 16/11/2005, 16h25

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