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 :

Conflits avec les arguments du main et la commande system()


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 17
    Par défaut Conflits avec les arguments du main et la commande system()
    Bonjour,

    j'ai une fonction toute simple, composé d'un main prenant en argument le nom d'un fichier et une fonction system("dir") pour afficher le contenu d'un dossier sous windows.

    Le but étant d'afficher dans un premier temps le contenu du fichier, puis d'afficher le contenu du dossier.

    Le fichier a ouvrir est dans le dossier courant.

    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
     
    #include <stdio.h>
    #include <stdlib.h>
     
    #define BUF_SIZE 256
     
    int main(int argc, char **argv)
    {
        char buffer[BUF_SIZE];
     
        printf("L'argument est %s\n", argv[1]);
     
        FILE *f;
        f = fopen(argv[1], "r");
        while(fgets(buffer, BUF_SIZE, f) != NULL)
        {
            printf("%s", buffer);
        }
        fclose(f);
     
        printf("\n================\n\n");
    	system("dir");
     
    	system("pause");
    	return 0;
    }
    Le probleme est que lors de l'appel de la fonction system pour faire un "dir", ne s'affiche plus le contenu du dossier courant, mais du dossier personnel, c'est a dire C:\Documents and Settings\Dossier Utilisateur\

    A noté que si je vire la partie pour ouvrir mon fichier en argument, la commande affiche bien le contenu du dossier courant. Le probleme n'apparait donc que lorsque j'ouvre le fichier en argument.

    Comment faire pour que la commande m'affiche le contenu du dossier courant ?

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    primo la déclaration de main est FAUSSE ......

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int main ( int argc, char *argv[] )
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int main ( int argc, char **argv )
    Ensuite tu ne fait pas fclose du fichier que tu ouvres..

    Ensuite une instruction avant la déclaration.

    Ensuite ton while n'est pas correct :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        while(fgets(buffer, BUF_SIZE, f) != NULL )

    Ensuite ton buffer est mal déclaré :


    Autant de fautes en si peu de lignes...




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

    Informations forums :
    Inscription : Juin 2007
    Messages : 17
    Par défaut
    en effet, je débute et j'ai coder ca a l'instant...

    mais sinon voyez vous une solution a mon probleme ?

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    corrige tout ça d'abord...

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 17
    Par défaut
    code édité.

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    je te parlais pas d'éditer le code ici, mais chez toi... Et de le faire tourner...

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

Discussions similaires

  1. [MVN2][JUnit] test avec les ressources du main
    Par Vince78 dans le forum Maven
    Réponses: 7
    Dernier message: 26/09/2007, 19h33
  2. [VBA-Excel]Avoir une boite de dialogue avec les arguments des fonctions ?
    Par EvaristeGaloisBis dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 29/05/2007, 09h37
  3. Probleme avec les arguments
    Par Pitou5464 dans le forum C
    Réponses: 6
    Dernier message: 06/11/2006, 16h16
  4. Réponses: 3
    Dernier message: 20/10/2006, 17h43
  5. [débutant] problème avec les arguments de fopen
    Par Anouschka dans le forum C++
    Réponses: 13
    Dernier message: 23/02/2006, 14h56

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