Accueil > Forum > > > > caractére d'un fichier dans un tableau
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 fichierint 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 principaleint 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
|
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
|
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
|
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
|
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
|
#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
|
Cette discussion est classée dans : fichier, fonction, ouverture, tableau, include
Répondre à ce message
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
RE : SAC A DOS RE : SAC A DOS par hadjkaddour
Cliquez pour lire la suite par hadjkaddour
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|