begin process at 2012 05 28 10:41:30
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Algorithme

 > 

Maths

 > 

caractére d'un fichier dans un tableau


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

caractére d'un fichier dans un tableau

mercredi 27 décembre 2006 à 15:22:42 | caractére d'un fichier dans un tableau

ender08450

/* En gros, ce que je voudrais faire: L'utilisateur rentre le nom d'un fichier texte, et le programme que j'essai de faire
dois rentrer tous les caratéres de ce fichier dans un tableau à une dimenion. J'arrive à ouvrir le fichier, à lire le tableau à
la fin.
Mais je n'arrive pas à rentrer les tous les caractéres dans mon tableau.
J'ai aussi un petit doute de pointeur vers fichier dans le programme principale.
Je suis un débutant, il est frot probable qu'il y est d'autre erreurs ...désolé*/


#include<stdio.h>                               
#include<string.h>                               
#include<stdlib.h>   
#include<iostream.h>                 //je sais y en a un peu trop, mais ca me servira plus tard.
#include<conio.h>
#include<math.h>               

#define MAX 10000                    // Nombre maximal de caractére du texte à mettre ds le tableau


//fonction pour l'ouverture du fichier
int OUVERTURE()
{
    FILE *fichier;
    char nomfichier[100];
    int i=0;
   
    cout<<endl<<"Saisissez le nom du fichier a ouvrir: ";
    cin>>nomfichier;
   
    fichier = fopen(nomfichier,"r");
   
    if(fichier==NULL)
       cout<<endl<<"Probleme lors de l'ouverture du fichier"<<endl;
    else
        {
            cout<<endl<<"Ouverture du fichier réussi"<<endl;
            i = 1;
        }
    return i;
}//fin de la fonction pour l'ouverture du fichier    


      

//programme principale
int main()
{
    OUVERTURE();
   
    FILE    *fichier; //je me demande si dans "fichier" il y a toujours le fichier texte que j'ai demandé  
                               d'ouvrir dans la fonction. et sinon, comment faire ?
    
    int        i = 0;
    char    Tab[MAX];

    //C'est là que ca coince, Je voudrais rentrer tous les caractéres du fichier dans un tableau à une dimension.
    //Et ce en utilisant la fonction fgets ! ou fscanf !
    //Si vous pouviez me montrer les deux solutions ou me dire qu'elle est là différence, ce serait cool!

    while(!feof(fichier) && i<MAX)
    {       
        fgets(Tab[i],char,fichier);
        i=i+1;
    }   
   
    i=0; //je réinitialise mon compteur
   
    // On affiche le tableau pour etre sur que tout s'est bien passé...
     while(i<MAX)
      {
      printf("%c\n",Tab[i]);
      i=i+1;
      }
 
    
    system("PAUSE");
    return 0;

}

mercredi 27 décembre 2006 à 15:30:31 | Re : caractére d'un fichier dans un tableau

deck_bsd

Membre Club
yop,

fgets(Tab[i],char,fichier); ? déjà char ne veut rien dire ;) sizeof(char) serai mieu. Mais pour être sur de récupérer 1 caractère a la fois utilise plutot la fonction fgetc ;) comme ca tu lit ton fichier caractères par caractères :p et les problèmes partirons .

++
deck_bsd
___________________________________
[ [ Lien ]]
mercredi 27 décembre 2006 à 15:49:49 | Re : caractére d'un fichier dans un tableau

SAKingdom

Membre Club
Je me répette mais...
Évitez de lire un fichier caractère par caractère. C'est mortel niveau performence. Beaucoup plus rapide de lire tout d'un coup dans un buffer.
Exemple:

#include <stdlib.h>
#include <stdio.h>
#include <io.h>

FILE *fichier = fopen("fichier", "r");
char *buffer;
int len;

if(!fichier) return 0;

len = _lseek(fichier->_file, 0, SEEK_END);
_lseek(fichier->_file, 0, SEEK_SET);

buffer = (char*)malloc(len+1); if(!buffer) goto closefile;

if(fread(buffer, 1, len, fichier) != len) goto freebuf;
buffer[len] = 0;

printf("%s\n", buffer);

freebuf:
free(buffer);
closefile:
fclose(fichier);

C++ (@++)

mercredi 27 décembre 2006 à 15:53:41 | Re : caractére d'un fichier dans un tableau

SAKingdom

Membre Club
Et aussi, ton fichier dans ton main de pointe sur rien. Ça ne fonctionne pas comme ça. On ne transfère pas une valeur d'une fonction a une autre en la redéclarent simplement. Il faudrait que ton OUVERTURE retourne fichier pour faire comme suit dans ton main:

FILE *fichier = OUVERTURE();

Ou alors, tout faire directement dans une fonction ou dans main.

C++ (@++)

mercredi 27 décembre 2006 à 15:58:29 | Re : caractére d'un fichier dans un tableau

ender08450

J'ai reéditer mon programme(notament le prb de fichier qui pointait sur rien), il marche mais plante à la partie ou je veux rentrer les caractéres dans mon tableau.
SAKingdom, ta solution semble parfaite, mais je ne voudrais utiliser que fscanf ou fgets, c'est un projet à faire en cours, et nous n'avons pas vue les fonctions que tu utilises. Je suis un débutant.



/* En gros, ce que je voudrais faire: L'utilisateur rentre le nom d'un fichier texte, et le programme que j'essai de faire
dois rentrer tous les caratéres de ce fichier dans un tableau à une dimenion. J'arrive à ouvrir le fichier, à lire le tableau à
la fin.
Mais je n'arrive pas à rentrer les tous les caractéres dans mon tableau.
Je suis un débutant, il est frot probable qu'il y est d'autre erreurs ...désolé*/


#include<stdio.h>                                
#include<string.h>                                
#include<stdlib.h>    
#include<iostream.h>                 //je sais y en a un peu trop, mais ca me servira plus tard.
#include<conio.h>
#include<math.h>                

#define MAX 10000                    // Nombre maximal de caractére du texte à mettre ds le tableau



int main()
{
    FILE *fichier;
    char nomfichier[100];
    char Tab[MAX];
    int i=0;

    
    cout<<endl<<"Saisissez le nom du fichier a ouvrir: ";
    cin>>nomfichier;
    
    fichier = fopen(nomfichier,"r");
    
    if(fichier==NULL)
       {
       cout<<endl<<"Probleme lors de l'ouverture du fichier"<<endl;
       system("PAUSE");
       exit(0);
       }
    else
        cout<<endl<<"Ouverture du fichier réussi"<<endl;
        

    //C'est là que ca coince, Je voudrais rentrer tous les caractéres du fichier dans un tableau à une dimension.
    //Et ce en utilisant la fonction fgets ! ou fscanf ! Mais je sais pas trop les utiliser.
    //Si vous pouviez me montrer les deux solutions ou me dire qu'elle est là différence, ce serait cool !

    while(!feof(fichier) && i<MAX)
    {        
        fscanf(fichier,"%c",Tab[i]);
        i=i+1;
    }
    
    
    
    i=0; //je réinitialise mon compteur
    
    
    // On affiche le tableau pour etre sur que tout s'est bien passé...
     while(i<MAX)
      {
      printf("%c\n",Tab[i]);
      i=i+1;
      }
 
     
    system("PAUSE");
    return 0;

}
mercredi 27 décembre 2006 à 16:15:28 | Re : caractére d'un fichier dans un tableau

SAKingdom

Membre Club
Réponse acceptée !
fscanf(fichier,"%c",&Tab[i]);

C++ (@++)

mercredi 27 décembre 2006 à 16:24:47 | Re : caractére d'un fichier dans un tableau

deck_bsd

Membre Club
#include<stdio.h>                                
#include<string.h>                                
#include<stdlib.h>    
#include<iostream.h>

Heu tu nous fait un gros mélange de C et de C++ et dans ton code aussi, en quel langage dois-tu faire ce programme ?

++
deck_bsd
___________________________________
[ [ Lien ]]
mercredi 27 décembre 2006 à 16:46:34 | Re : caractére d'un fichier dans un tableau

ender08450

en c++


Cette discussion est classée dans : fichier, fonction, ouverture, tableau, include


Répondre à ce message

Sujets en rapport avec ce message

Tableau de correspondance des fonctions c++ et de leur fichier #include [ par guguy ] BonjourJ'aimerais savoir s'il serait possible de trouver un tableau de correspondance entre les fonctions c++ et leur fichier #include (ex : cout -> i probleme d'include [ par titus0m ] bonjour,je develop sous kdev sous linux.mon probleme est un conflit entre deux include qui possede une fonction qui se nomme pareil. C'est la fonction aide pour ouverture en hexa [ par alphaone ] Svp pouvais vous me faire un prog qui ouvre un fichier en hexa l'enregistre dans un tableau de nombre. et reconstitu le fichier à partir du tableau de ouverture et écriture dans un executable [ par chycago ] bonjour je suis en train de faire une sorte de patcheur qui me permet de changer quelques octets d'un programme le problème c'est que l'ouverture du f REcuperer des donnée d'un fichier binaire vers une tableau de hachage [ par whiteknight ] Slt j'ai des problemes avec ma fonction load qui me permet de recuperer les données d'un fichier binaire et de les transférer vers un tableau de hacha Ouverture de fichier avec fonction OnFileOpen - MFC [ par Rololo ] Salut tout le monde,j'aimerais modifier la fonction OnFileOpen de la classe CWinApp pour de façon à obliger un utilisateur à ouvrir qu'un certain type creer une fonction pour ouverture fichier [ par nach73 ] bonjour,Je debut en C, jaimerai creer une fonction (pas dans le main) qui me permet d'ouvrir un fichier dont l'utilisateur aurait au pralable rentrer Appel d'une fonction contenue dans une dll [ par ybuchheit ] Bonjour, je souhaiterais appeler une fonction contenue dans une dll. Je n'ai pas le source de cette dll, le seul fichier dont je dispose est le .dll Occurence d'un caractére ds un tableau [ par ender08450 ] Bonjour à tous.mon programme rentre tous les caractéres d'un fichier texte dans un tableau à une dimension. Ca ca marche.Je voudrais compter le nombre récupération d'un fichier dans un tableau [ par dgac ] Bonjour j'ai essayé le code suivant[CODE] #include&lt


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,515 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales