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 :

fonction main en C++


Sujet :

C++

  1. #1
    Candidat au Club
    Inscrit en
    Mai 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 7
    Points : 3
    Points
    3
    Par défaut fonction main en C++
    salut,

    j'ai un programme en c++ et je n'utilise que la fonction main, j'aimerais ajouter une fonction qui fait tout et l'appeler dans le main, comment je fait, merci:

    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
    #include <iostream.h>
    #include <stdlib.h>
    #include <string.h>
     
    #define TAILLE 1024
    #define SIZE_WORD  25
     
    int main(int argc, char ** argv)
    {
        int i = 0;
        int j = 0;
        char *index[SIZE_WORD];
     
        int nombre[TAILLE];
        FILE *fic = NULL;
     
        fic = fopen("index.txt", "r");
     
        if(fic == NULL) {
     
            cout<<"Erreur ouverture fichier ! \n"<<endl;
            return EXIT_FAILURE;
        }
     
        /* initialisation du tableau d'entier */
        for(i = 0; i < TAILLE; i++) {
            nombre[i] = 0;
        }
     
        for(i = 0; i < TAILLE; i++) {
     
            if(index[i] == NULL) {
                cout<<"Erreur malloc ! \n"<<endl;
                return EXIT_FAILURE;
            }
           index[i] = '\0';
        }
     
        for(i = 0; i < TAILLE && fgets(index[i], SIZE_WORD, fic); i++) {
            if((index[i])[strlen(index[i])-1] == '\n') /* a remplacer par une methode plus sur */
                (index[i])[strlen(index[i])-1] = 0;
        }
     
        for(i = 1; i < argc; i++) {
            for(j = 0; j < 1024; j++) {
                if(!strcmp(argv[i],index[j]))
                    nombre[j]++;
            }
        }
     
     
        /* exploitation des resultats 
        for(j = 0; j < 1024; j++) {
            if(nombre[j]) {
            printf("Mot: %s apparu %d fois\n",index[j],nombre[j]);
        }
        } */
     
        for(i = 0; i < TAILLE; i++) {
            free(index[i]);
            index[i] = NULL;
        }
     
        fclose(fic);
        fic = NULL;
     
        return EXIT_SUCCESS;
     
    }

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    c'est une blague ?
    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
    #include <iostream>
    #include <cstdlib>
    #include <cstring>
    using namespace std;
     
    #define TAILLE 1024
    #define SIZE_WORD 25
     
    /* fonction appelee par main
       ------------------------- */
    int fonction(int argc, char const * const * argv)
    {
    int i = 0;
    int j = 0;
    char *index[SIZE_WORD]; //j'ai des doutes sur cette déclaration...
     
    int nombre[TAILLE];
    FILE *fic = NULL;
     
    fic = fopen("index.txt", "r");
     
    if(fic == NULL) {
     
    cout<<"Erreur ouverture fichier ! \n"<<endl;
    return EXIT_FAILURE;
    }
     
    /* initialisation du tableau d'entier */
    for(i = 0; i < TAILLE; i++) {
    nombre[i] = 0;
    }
     
    for(i = 0; i < TAILLE; i++) {
     
    if(index[i] == NULL) {
    cout<<"Erreur malloc ! \n"<<endl; // ou ça, malloc? il n'y a ni malloc ni new, ici...
    return EXIT_FAILURE;
    }
    index[i] = '\0';
    }
     
    for(i = 0; i < TAILLE && fgets(index[i], SIZE_WORD, fic); i++) {
    if((index[i])[strlen(index[i])-1] == '\n') /* a remplacer par une methode plus sur */
    (index[i])[strlen(index[i])-1] = 0;
    }
     
    for(i = 1; i < argc; i++) {
    for(j = 0; j < 1024; j++) {
    if(!strcmp(argv[i],index[j]))
    nombre[j]++;
    }
    }
     
     
    /* exploitation des resultats 
    for(j = 0; j < 1024; j++) {
    if(nombre[j]) {
    printf("Mot: %s apparu %d fois\n",index[j],nombre[j]);
    }
    } */
     
    for(i = 0; i < TAILLE; i++) {
    free(index[i]);
    index[i] = NULL;
    }
     
    fclose(fic);
    fic = NULL;
     
    return EXIT_SUCCESS;
    }
     
     
    /* M A I N
       ------- */
    int main(int argc, char ** argv)
    {
    return fonction(argc, argv);
    }
    PS: Tu mélanges trop les fonctions C++ et les fonctions C.
    Particulièrement pour les streams, tu risques d'avoir des problèmes au niveau bufferisation...
    PPS: Ton code n'est pas indenté, et je ne vais pas perdre mon temps à le réindenter à la main...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    Un bel exemple de code archi-mauvais.
    Déjà c'est essentiellement du C, mais en plus tu écris dans des buffers non alloués...
    Boost ftw

  4. #4
    Candidat au Club
    Inscrit en
    Mai 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    merci ^^

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [C#] Norme fonction main
    Par Kr00pS dans le forum Windows Forms
    Réponses: 1
    Dernier message: 26/08/2006, 20h05
  2. Réponses: 21
    Dernier message: 20/06/2006, 16h49
  3. arguments dans ma fonction main
    Par salseropom dans le forum C
    Réponses: 10
    Dernier message: 15/03/2006, 23h12
  4. la fonction main
    Par harvouj dans le forum Langage
    Réponses: 1
    Dernier message: 13/02/2006, 01h34

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