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 :

Probleme pour compter des bits


Sujet :

C

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 30
    Par défaut
    voila jai fait des modification le probleme et ce quil ne me lit pas ce que j'ai mis dans mon fichier il me met n'importe quoi voila le 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
     
     
    #include <stdio.h> 
     
    #include <conio.h> //pour getch()
     
    #include <stdlib.h> //exit(0)(fonction terminator)
     
    #include <io.h> //pour la fonction open
     
    #include <fcntl.h> //pour les attributs O_CREAT,O_BINARY....
     
    #include <sys/stat.h> //pour les attributs S_IREAD,S_IWRITE.....
     
    #include <errno.h> // pour les attributs EACCESS....
     
    #include <string.h> //pour strlen
     
    //Prototype Terminator
     
    void Fin (char* pMsg)
    {
        puts(*pMsg);
        exit(0);
    }
     
     
     
    int main (void)
    {
     
    	int iFichier,iBitsEcriture,iBitsLecture;
    	unsigned int nbits = 1024;
    	char buff[1024];
    	char  *buffer  = "test write";
    	long lTaille_fichier;
     
     
     
    //test si fichier existe
    if((_access( "data.txt", 0 )) != -1 )
    {
       printf( "Fichier data.txt existe\n" );
       // Pour permission d'écriture
       if( (_access( "data.txt ", 2 )) != -1 )
           printf( "le Fichier data.txt est pret pour l'ecriture\n" );
    }
    else
    {
         switch(errno)
         {
             case EACCES :printf("accès interdit\n ");
                                     break;
            case  ENOENT:printf("fichier ou chemin incorrect \n") ;
                                      break ;
          }
    }
     
     
    	iFichier = open ("data.txt",O_BINARY|O_CREAT|O_RDWR,S_IREAD|S_IWRITE);
     
    	if(iFichier == -1) Fin("open : Fichier non ouvert");
     
    	else puts("Fichier cree");
     
    /************Pour l'ecriture*******************/
     
    	iBitsEcriture = write(iFichier,buffer,strlen (buffer));
     
    	//test
    	if(iBitsEcriture == -1) Fin("Write : Erreur d'ecriture");  
     
    	else printf("vous avez ecris %i bits dans le fichier data.txt\n",iBitsEcriture);
     
     
       //Move a file pointer to the specified location
    	lseek(iFichier,0L,SEEK_SET);//on pointe à la au debut  du fichier
     
    /*************Pour la lecture**************/
    	   iBitsLecture = read( iFichier, buff, nbits );
       if( iBitsLecture == -1 ) puts( "Problem reading file" );
       else
        printf( "Vous avez lu %i bits dans le fichier Data.txt\n", iBitsLecture);
     /*****************************************/
     
    	lTaille_fichier = iBitsLecture;
    	buffer =(char *)malloc(sizeof(char) *lTaille_fichier);
    	printf("voila ce qu'il y a dans buffer :***%s****\n",buffer);
     
     
     
    	close(iFichier);//fermeture du fichier
    	free(buffer);//liberation de l'espace alloué
        getch();
    	getch();
    	return 0;
     
    }
    voila ce que ca m'affiche en mode console



    si quelqu'un peut me dire pourquoi ca me fait ca merci

    je suis pas super bon en c mais j'ai bien appris aujourd'hui jai fait des recherches et je suis content de moi merci de votre aide et de celle futur

  2. #22
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 70
    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 Delgador
    disons je ne peux pas utiliser fopen et fwrite et fread
    mon prof n'est pas pour ce genre de fonction<...>
    Change de prof. C'est un âne.

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 30
    Par défaut
    ca ne repond pas à mon probleme.....

  4. #24
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 70
    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 Delgador
    ca ne repond pas à mon probleme.....
    Tu as déjà eu les réponses nécessaires pour programmer en C standard. Si tu veux utiliser les fonctions systèmes, va sur le forum consacré à ton système.

    Je te rappelle que sous Windows, les fonctions systèmes sont OpenFile(), ReadFile() etc.

    open() et read(), c'est pour unixoide et systèmes compatibles POSIX.1.

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 30
    Par défaut
    Citation Envoyé par stephl
    Ceci devrait pouvoir vous aider. Je vous laisse le soin de convertir les accès fichier si vous tenez absolument à utiliser vos fonctions.
    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
    #include <stdio.h>
     
     
    #define MINX 0
    #define MAXX 1000
    #define MINY 0
    #define MAXY 1000
     
    #define CHECK(X,Y) ((X)>=MINX && (X)<=MAXX && (Y)>=MINY && (Y)<=MAXY)
     
     
    int main(void)
     {
     FILE *f;
     char buf[256];
     int index,x,y;
     
     if ((f=fopen("coord.txt","r"))==NULL)
      {
      printf("Impossible d'ouvrir le fichier\n");
      return -1;
      }
     index=0;
     while (fgets(buf,sizeof buf,f)!=NULL)
      {
      ++index;
      sscanf(buf,"%d %d",&x,&y);
      printf("Ligne #%11d: x=%11d\ty=%11d\t%s\n",index,x,y,CHECK(x,y)?"OK":"KO");
      }
     fclose(f);
     return 0;
     }
    Merci pour cela mais tu fais un %11 à quoi sert il je veut dire si on le supprime ca fonctionne aussi bien non?

  6. #26
    Membre émérite Avatar de stephl
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 643
    Par défaut
    Citation Envoyé par Delgador
    Merci pour cela mais tu fais un %11 à quoi sert il je veut dire si on le supprime ca fonctionne aussi bien non?
    Le but est juste d'afficher dans un champ de 11 caractères pour aligner les données; c'est purement esthétique!

Discussions similaires

  1. Probleme pour effacer des lignes
    Par Thargor dans le forum Oracle
    Réponses: 7
    Dernier message: 12/10/2005, 15h58
  2. DTD - probleme pour definir des differentes branches
    Par jeanpol dans le forum Valider
    Réponses: 1
    Dernier message: 11/07/2005, 20h00
  3. Réponses: 7
    Dernier message: 16/04/2005, 09h55
  4. [NetBeans 4.0 Beta 2]Probleme pour monter des jars
    Par nicoo dans le forum NetBeans
    Réponses: 2
    Dernier message: 19/11/2004, 15h14
  5. Réponses: 5
    Dernier message: 07/07/2004, 17h05

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