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 :

Creation d'un fichier


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Inscrit en
    Mai 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 8
    Par défaut Creation d'un fichier
    Au secours!!!

    Slt j'aimerai creer un fichier (de mot) mais en allouant dynamiquement la la taille (avec malloc et realloc). un mot a au plus 100 caracteres, et l'affichage dois se faire par ordre alphabetique (avec qsort).Mon programme dois etre capable de prendre n'importe quel fichier en entree et afficher le contenu par ordre alphabetique.
    Comment dois je faire???

    Merci de votre aide.

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 116
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 116
    Par défaut
    Citation Envoyé par lia20
    Au secours!!!
    Merci de ne pas utiliser d'interjections à caractère excessif

    Citation Envoyé par lia20
    Slt
    Merci de ne pas abréger votre écriture.

    Citation Envoyé par lia20
    Comment dois je faire???
    Merci de respecter un minimum les conventions typographiques.
    Merci également d'exposer votre problème de façon un peu plus synthétique. Votre exposé est assez confus.
    Citation Envoyé par lia20
    Merci de votre aide.
    Une espace est interprétée par le C comme telle, je crois qu'il suffit de chercher tout ce qui succède à une espace ou un retour chariot ou encore un caractère de fin de chaîne pour définir un mot. Les fonctions de manipulation de chaîne sont disponibles à cette adresse : http://man.developpez.com/man3/string.3.php . Les allocations malloc() permettent d'allouer un taille fixe, realloc() d'ajuster la taille du tampon. strcmp() compare les chaînes. Enfin qsort() est une fonction de tri rapide. Consultez également les pages de manuel correspondantes en utilisant la fonction recherche à http://man.developpez.com/ et en donnant man qsort par exemple.

  3. #3
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Par défaut
    Citation Envoyé par lia20
    [..]
    Slt j'aimerai creer un fichier (de mot) mais en allouant dynamiquement la la taille (avec malloc et realloc). un mot a au plus 100 caracteres, et l'affichage dois se faire par ordre alphabetique (avec qsort).Mon programme dois etre capable de prendre n'importe quel fichier en entree et afficher le contenu par ordre alphabetique.[...]
    Kromartien a bien résumé plusieurs points.
    Passons à quelques questions car effectivement ce n'est pas complètement clair.
    - Allouer dynamiquement quoi ? le fichier ? Ça n'a pas de sens. Un fichier se crée au fur et à mesure que tu écris dedans. Un peu comme quand tu tapes du texte dans word si tu veux.
    - Un mot a au plus 100 caractères... pourquoi vouloir du dynamique alors ? Est-ce impératif d'après l'énoncé ?
    - De quel affichage parles-tu ? Tu parles de créer un fichier, mais pas d'en afficher le contenu.

    Il faudrait donc que tu précises ces points. De plus, qu'as-tu fait jusqu'à maintenant ? POurrais tu nous fournir ce que tu as fait, tes idées et où ça bloque. Finalement, n'oublies pas de nous dire ce que tu as vu en classe. Sinon on pourrait te dire des trucs que ton prof ne veut pas voir.


  4. #4
    Membre éclairé Avatar de archer
    Ingénieur développement logiciels
    Inscrit en
    Mai 2007
    Messages
    338
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 338
    Par défaut la saisie des mots
    salut
    pour saisir un texte mot par mot on peut utiliser la fonction
    fscanf( *poiteur_du_fichier,"%s",&adress_du_tableau)
    par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    #include<stdio.h>
    FILE *f;
    char tab[100];
    void main()
    {
           f=fopen("nom_du_fichier","r");/*mode d'ouverture dans ce cas en lecture*/
           while(!feof(f))// tand qu'on n'a pas atteint la fin du fichier
           {
                    fscanf(f,"%s",&tab);/* le mot et maintenant saisie dans le tableau à vous de jouer*/
                    .................
                    .................
            }.......
    pour pouvoir manipuler le contenu du fichier je vous suggère l'utilisation des listes chaînées ainsi vous poserez directement le mot saisie dans une case de cette liste. je ne sais pas si ces informations vous serons utiles mais si vous voulez plus d'explications je serai là
    et merci pour votre attention

  5. #5
    Membre régulier
    Inscrit en
    Mai 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 8
    Par défaut
    Finalement jai decidé d'utiliser un tableau de caracteres.le code est en fichier joint(je sai pas comment on utilise la balise code desolé).

    [MOD : Il suffit de cliquer sur et de placer le code entre les balises...]

    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
     
    #include<stdlib.h>
    #include<stdio.h>
     
    int lecture(char *tab[],int max)
    {
    	int nbchaine=0;
    	char chaine[101];
     
    	while(nbchaine<max && strcmp(gets(chaine),"end"))
    	{
    		tab[nbchaine]=(char*)malloc(strlen(chaine)+1);
    		strcpy(tab[nbchaine],chaine);
    		nbchaine++;
    	}
    	return nbchaine;
    }
     
    int sort(const void *a, const void*b)
    {
    	return strcmp(*(char * const *)a, *(char * const *)b);
    }
     
    void ecrire(char *tab[], int max)
    {
    	int i;
     
    	qsort((void *)tab, max, sizeof(tab[0]), sort);
    	for(i=0;i<max;i++)
    		puts(tab[i]);
    }
     
    int main()
    {
    	char *tab[100];
    	int nblues;
    	nblues=lecture(tab,100);
    	printf("\n");
    	ecrire(tab,nblues);
    	return 0;
    }
    J'aimerai savoir comment faire pour que mon programme prenne plutot une liste de mot en entree (deja saisie en txt) et la ressort triée?On peux seulemet saisir a l'ouverture avec le mien.

  6. #6
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 116
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 116
    Par défaut
    Bonjour. Je ne comprends pas l'utilisation qui est faite de gets, normalement c'est pour prendre des chaines depuis le flux standard. Vous devez ainsi taper chaque mot puis faire "entrée" pour terminer la saisie par le caractère '\0'.

    L'utilisation de gets est à déconseiller au profit de fgets, qui permet la lecture depuis n'importe quel flux et ne pose pas les mêmes problèmes de dépassement de Buffer.

Discussions similaires

  1. Creation d'un fichier XML avec ASP encoder en UTF-8
    Par freeze_land dans le forum ASP
    Réponses: 6
    Dernier message: 14/02/2007, 10h59
  2. [CSV] Creation d'un fichier csv côté client
    Par Taz_8626 dans le forum Langage
    Réponses: 6
    Dernier message: 31/03/2006, 09h48
  3. Creation d'un fichier commun !!
    Par Shandler dans le forum C++
    Réponses: 2
    Dernier message: 24/02/2005, 12h00
  4. Date de création d'un fichier
    Par cap38 dans le forum Linux
    Réponses: 14
    Dernier message: 28/04/2004, 14h06
  5. creation d un fichier jar ou .exe en java
    Par sadjia dans le forum JBuilder
    Réponses: 13
    Dernier message: 13/12/2002, 16h01

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