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 :

Exécuter un fichier


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 70
    Par défaut Exécuter un fichier
    Bonjour,

    Je souhaite tout simplement ouvrir un fichier, une image plus précisément. Le nom du fichier est un peu complexe, il est définit comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
          sprintf(filename, "Wolfram - Loi=%d - Pas=%d.ppm", loi, p);
    Bon, j'ai tenté naïvement de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
          system("Wolfram - Loi=%d - Pas=%d.ppm", loi, p);
    Disons que ça n'a pas eu l'effet voulu
    Voila, merci pour votre aide !

  2. #2
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut Re: Exécuter un fichier
    Citation Envoyé par babar56
    Je souhaite tout simplement ouvrir un fichier, une image plus précisément. Le nom du fichier est un peu complexe, il est définit comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
          sprintf(filename, "Wolfram - Loi=%d - Pas=%d.ppm", loi, p);
    Bon, j'ai tenté naïvement de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
          system("Wolfram - Loi=%d - Pas=%d.ppm", loi, p);
    Disons que ça n'a pas eu l'effet voulu
    As-tu au moins vérifié le prototype de system() ? Ce n'est pas en programmant au hasard qu'oin arrive à faire quelque chose. Trop de combinaisons !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
       sprintf (filename, "Wolfram - Loi=%d - Pas=%d.ppm", loi, p); 
       system (filename);
    non ?
    Evidemment, filename doit êre un tableau de char suffisament grand...

  3. #3
    Membre averti
    Inscrit en
    Février 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 70
    Par défaut Re: Exécuter un fichier
    Citation Envoyé par Emmanuel Delahaye
    Ce n'est pas en programmant au hasard qu'oin arrive à faire quelque chose. Trop de combinaisons !
    J'ai placé un fichier image.ppm dans le dossier, et j'ai essayé "au hasard" un et ça me l'a ouvert

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
       sprintf (filename, "Wolfram - Loi=%d - Pas=%d.ppm", loi, p); 
       system (filename);
    non ?
    Dis comme ça, non. Je pense qu'il a du mal avec les espaces, la fenêtre dos me renvoit : 'Wolfram' n'est pas reconnu en tant que commande interne, ...

  4. #4
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut Re: Exécuter un fichier
    Citation Envoyé par babar56
    J'ai placé un fichier image.ppm dans le dossier, et j'ai essayé "au hasard" un et ça me l'a ouvert
    Et tu en tires quelles conclusions ?

    Moi, je dirais que dans ton shell, l'extension .ppm a été associée à un certain programme qui sait ouvrir de .ppm. C'est une question de configuration de ton système.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
       sprintf (filename, "Wolfram - Loi=%d - Pas=%d.ppm", loi, p); 
       system (filename);
    non ?
    Dis comme ça, non. Je pense qu'il a du mal avec les espaces, la fenêtre dos me renvoit : 'Wolfram' n'est pas reconnu en tant que commande interne, ...
    As-tu au moins fait un printf ("'%s'\n'", filename); pour voir si la chaine est correcte ?

    Qu'est-ce que ça donne ?

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 464
    Par défaut
    sous Windows:

    la fonction system() permet de lancer exclusivement une commande de type EXE,COM,CMD ou BAT.

    pour ouvrir un document (ton image par exemple) automatiquement avec l'application adéquate, il faut utiliser le shell de Windows.

    pour ouvrir ton image et farfouiller toi-même dans le fichier, le mieux est encore d'utiliser fopen()...

  6. #6
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par rigobert
    la fonction system() permet de lancer exclusivement une commande de type EXE,COM,CMD ou BAT.
    Eh, on est plus en Win16... Windows 3.1, c'est fini...

    pour ouvrir un document (ton image par exemple) automatiquement avec l'application adéquate, il faut utiliser le shell de Windows.
    Mais non...

  7. #7
    Membre averti
    Inscrit en
    Février 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 70
    Par défaut Re: Exécuter un fichier
    Citation Envoyé par Emmanuel Delahaye
    As-tu au moins fait un printf ("'%s'\n'", filename); pour voir si la chaine est correcte ?

    Qu'est-ce que ça donne ?
    La chaine est correcte, le printf affiche le nom complet avec les bonnes valeurs de loi et de p. Et le fichier existe, il est bien là, dans le répertoire courant.

    Mais je me dis que l'erreur provient plutôt de l'espace dans le nom de fichier. Je pense qu'il faudrait trouver l'analogue de %20 en html, pour la commande system (relative à windows, le problème ne se pose peut-être pas sous linux).

  8. #8
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut Re: Exécuter un fichier
    Citation Envoyé par babar56
    Mais je me dis que l'erreur provient plutôt de l'espace dans le nom de fichier.
    Quel espace ? Quel nom de fichier ? Par contre, je vois des espaces entre '-' et 'Loi' et 'Pas'. C'est normal ?

    Ca ne serait pas ça plutôt ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
       sprintf (filename, "Wolfram -Loi=%d -Pas=%d.ppm", loi, p);
       system (filename);
    Je pense qu'il faudrait trouver l'analogue de %20 en html, pour la commande system (relative à windows, le problème ne se pose peut-être pas sous linux).
    Linux/Windows même combat. L'espace étant un des séparateurs de commandes...

    Si il faut ignorer de espaces, encadrer l'expression avec des ", soit \" en C :

  9. #9
    Membre averti
    Inscrit en
    Février 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 70
    Par défaut Re: Exécuter un fichier
    Citation Envoyé par Emmanuel Delahaye
    Citation Envoyé par babar56
    Mais je me dis que l'erreur provient plutôt de l'espace dans le nom de fichier.
    Quel espace ? Quel nom de fichier ? Par contre, je vois des espaces entre '-' et 'Loi' et 'Pas'. C'est normal ?
    Mes réponses dans l'ordre des questions :
    - En fait, je parlais des espaces en général, mais je voulais mettre l'accent sur le premier espace en particulier (puisque dans l'erreur dos, il m'indique 'Wolfram' et il n'affiche pas tout ce qui suit cet espace).
    - Le fichier 'fichier' , définit de cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
          FILE *fichier; 
          char filename[50]; 
     
          sprintf(filename, "Wolfram - Loi=%d - Pas=%d.ppm", loi, p); 
     
          fichier = fopen(filename, "w");
    - Pour l'espace qui suit le -, c'est une question de présentation si je comprends bien ? Je trouve ça plus clair avec des espaces de chaques côtés du -, mais là n'est pas le problème.

    Bon, alors j'ai essayé de modifier la ligne sprintf. J'ai crée le caractère espace et j'ai remplacé mes espaces par des %c, ça donne exactement la même erreur.

    J'ai tenté d'insérer des \" dans sprintf sans succès.

  10. #10
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Tu es sur que ceci ne fonctionne pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    sprintf(filename, "\"Wolfram - Loi=%d - Pas=%d.ppm\"", loi, p);
    system(filename);

  11. #11
    Membre averti
    Inscrit en
    Février 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 70
    Par défaut
    Citation Envoyé par Skyrunner
    Tu es sur que ceci ne fonctionne pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    sprintf(filename, "\"Wolfram - Loi=%d - Pas=%d.ppm\"", loi, p);
    system(filename);
    J'en suis parfaitement convaincu. D'ailleurs, ça fait buguer le programme, même si je vire la fonction system (la fenêtre dos se ferme brutalement). Donc à priori c'est la syntaxe \" qu'il n'apprécie pas sous cette forme.

  12. #12
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut Re: Exécuter un fichier
    Citation Envoyé par babar56
    - En fait, je parlais des espaces en général, mais je voulais mettre l'accent sur le premier espace en particulier (puisque dans l'erreur dos, il m'indique 'Wolfram' et il n'affiche pas tout ce qui suit cet espace).
    Un peu de théorie générale...

    As-tu testé ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
       sprintf (filename, "Wolfram -Loi=%d -Pas=%d.ppm", loi, p);
       system (filename);
    (la commande sans les espaces après '-')

  13. #13
    Membre averti
    Inscrit en
    Février 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 70
    Par défaut Re: Exécuter un fichier
    Citation Envoyé par Emmanuel Delahaye
    Evidemment, si ton application attend -Loi=123, ça ne marchera pas.

    Que dit la doc de l'application 'wolfram' ?
    Wolfram n'est pas une application ! J'ai juste choisi de créer des fichiers qui porteraient ce nom là. Je ne veux pas lancer une application Wolfram. Loi et Pas ne sont pas les paramètres d'une application wolfram !

    Mon programme crée un fichier qui se nomme, par exemple :
    Wolfram - Loi=454 - Pas=44.ppm

    Et je veux exécuter ce fichier, ie visualiser cette image comme si je double-cliquais dessus. Les - et les = ne sont que les caractères du nom de fichier (il me semble qu'il y a eu confusion à ce sujet, ou alors j'ai carrément rien compris à ce que tu as dis ?)

    As-tu testé ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
       sprintf (filename, "Wolfram -Loi=%d -Pas=%d.ppm", loi, p);
       system (filename);
    (la commande sans les espaces après '-')
    En effet, et l'erreur perciste.

  14. #14
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Citation Envoyé par babar56
    Citation Envoyé par Skyrunner
    Tu es sur que ceci ne fonctionne pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    sprintf(filename, "\"Wolfram - Loi=%d - Pas=%d.ppm\"", loi, p);
    system(filename);
    J'en suis parfaitement convaincu. D'ailleurs, ça fait buguer le programme, même si je vire la fonction system (la fenêtre dos se ferme brutalement). Donc à priori c'est la syntaxe \" qu'il n'apprécie pas sous cette forme.
    Euh, j'ai du mal à croire ce que tu dis. La syntaxe \" est tout a fait correct

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    #include <stdio.h>
     
    int main(void) {
        char filename[1024];
        int loi=4;
        int p=125;
     
        sprintf(filename, "\"Wolfram - Loi=%d - Pas=%d.ppm\"", loi, p);
     
        printf("%s\n", filename);
     
        return 0;
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    C:\Documents and Settings\Skyrunner\Mes documents>test
    "Wolfram - Loi=4 - Pas=125.ppm"
     
    C:\Documents and Settings\Skyrunner\Mes documents>

  15. #15
    Membre averti
    Inscrit en
    Février 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 70
    Par défaut
    Je suis d'accord avec ton code Skyrunner. Maintenant essayes celui-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #include <stdio.h> 
     
    int main(void) { 
        char filename[1024]; 
        int loi=4; 
        int p=125; 
     
        FILE *fichier;
        sprintf(filename, "\"Wolfram - Loi=%d - Pas=%d.ppm\"", loi, p); 
        fichier = fopen(filename, "w"); 
        fclose(fichier);
        printf("%s\n", filename); 
        return 0; 
    }
    En fait, la commande fopen n'est pas prise en compte, le fichier ne se crée pas. Et du coup un fprintf ou un fclose fait buguer le programme.

  16. #16
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Citation Envoyé par babar56
    Je suis d'accord avec ton code Skyrunner. Maintenant essayes celui-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #include <stdio.h> 
     
    int main(void) { 
        char filename[1024]; 
        int loi=4; 
        int p=125; 
     
        FILE *fichier;
        sprintf(filename, "\"Wolfram - Loi=%d - Pas=%d.ppm\"", loi, p); 
        fichier = fopen(filename, "w"); 
        fclose(fichier);
        printf("%s\n", filename); 
        return 0; 
    }
    En fait, la commande fopen n'est pas prise en compte, le fichier ne se crée pas. Et du coup un fprintf ou un fclose fait buguer le programme.
    Cela viens du fais que le caractere " est illegal dans un nom de fichier, donc ton fopen renvoi NULL donc le fclose provoque une segfault.

    Ton probleme est que tu souhaite ouvrir un fichier dont le nom a des espaces.

    Voici un code fonctionnel

    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> 
     
    int main(void) { 
        char filename[1024]; 
        int loi=4; 
        int p=125; 
     
        FILE *fichier;
        sprintf(filename, "\"Wolfram - Loi=%d - Pas=%d.ppm.txt\"", loi, p); 
        printf("%s\n", filename); 
        system(filename);
        return 0; 
    }
    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
     
    C:\Documents and Settings\Skyrunner\Mes documents>test
    "Wolfram - Loi=4 - Pas=125.ppm.txt"
    'Wolfram' n'est pas reconnu en tant que commande interne
    ou externe, un programme exécutable ou un fichier de commandes.
     
    C:\Documents and Settings\Skyrunner\Mes documents>echo salut > "Wolfram - Loi=4 - Pas=125.ppm.txt"
     
    C:\Documents and Settings\Skyrunner\Mes documents>dir
     Le volume dans le lecteur C n'a pas de nom.
     Le numéro de série du volume est 4088-47D6
     
     Répertoire de C:\Documents and Settings\Skyrunner\Mes documents
     
    15/04/2006  22:16    <REP>          .
    15/04/2006  22:16    <REP>          ..
    [...]
    15/04/2006  22:15               278 test.c
    15/04/2006  22:15            16 016 test.exe
    25/01/2006  06:09    <REP>          Wallpapers
    15/04/2006  22:16                 8 Wolfram - Loi=4 - Pas=125.ppm.txt
                   4 fichier(s)           16 868 octets
                  14 Rép(s)  27 797 151 744 octets libres
     
    C:\Documents and Settings\Skyrunner\Mes documents>test
    "Wolfram - Loi=4 - Pas=125.ppm.txt"
     
    C:\Documents and Settings\Skyrunner\Mes documents>
    Et la le notepad s'est ouvert avec mon fichier

  17. #17
    Membre averti
    Inscrit en
    Février 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 70
    Par défaut

    Citation Envoyé par Skyrunner
    Et la le notepad s'est ouvert avec mon fichier
    Mon Windows n'a pas cette présence d'esprit ... Il perciste à me renvoyer : 'Wolfram' n'est pas reconnu en tant que commande interne ou externe, programme exécutable ou fichier de commandes.

    Pourtant, j'ai copié collé ton code sans rien modifier.

  18. #18
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut Re: Exécuter un fichier
    Citation Envoyé par babar56
    Mon programme crée un fichier qui se nomme, par exemple :
    Wolfram - Loi=454 - Pas=44.ppm
    Ahhh! OK, C'est un nom de fichier.... Comme tu le passais à system(), j'étais aveuglé... Je voyais une ligne de commande...

    Alors, il ne faut pas mettre de " supplémentaires si tu ouvres un fichier avec fopen().

    (Ton code de test était stressant : fclose() avec NULL, ca secoue...)

    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
     
    #include <stdio.h>
    #include <stdlib.h>
     
    int main(void)
    {
       char filename[1024];
       int loi = 4;
       int p = 125;
       sprintf(filename, "Wolfram - Loi=%d - Pas=%d.ppm", loi, p);
       printf("%s\n", filename);
     
       {
          FILE *fichier = fopen(filename, "w");
     
          if (fichier != NULL)
          {
             fclose(fichier);
          }
          else
          {
             perror (filename);
          }
       }
     
       system ("dir w*");
       return 0;
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Wolfram - Loi=4 - Pas=125.ppm
     Le volume dans le lecteur C s'appelle 427409
     Le numéro de série du volume est 8873-ADFB
     
     Répertoire de C:\dev\forums\OP
     
    15/04/2006  22:26                 0 Wolfram - Loi=4 - Pas=125.ppm
    15/04/2006  22:17                 0 Wolfram.ppm
                   2 fichier(s)                0 octets
                   0 Rép(s)  143 881 388 032 octets libres
    Par contre, pour system(), il faut mettre les " supplémentaires, car c'est un nom entier... Mais j'ai un doute quand même. Ca pourrait bien ne pas fonctionner. C'est quand même une drôle de manip d'appeler une application par un fichier... Comme l'extension va se retrouver dans les " ", elle risque d'être ignorée par le shell...

    Tu ne veux pas plutôt appeler la commande explicitement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    system ("commande \"nom de fichier avec des espaces\"");

  19. #19
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Citation Envoyé par babar56

    Citation Envoyé par Skyrunner
    Et la le notepad s'est ouvert avec mon fichier
    Mon Windows n'a pas cette présence d'esprit ... Il perciste à me renvoyer : 'Wolfram' n'est pas reconnu en tant que commande interne ou externe, programme exécutable ou fichier de commandes.

    Pourtant, j'ai copié collé ton code sans rien modifier.
    Donc comme moi juste avant que je crée le fichier.

    Est-ce que tu as bien creer le meme fichier que moi.

    Wolfram - Loi=%d - Pas=%d.ppm.txt

  20. #20
    Membre averti
    Inscrit en
    Février 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 70
    Par défaut
    Oui mais Skyrunner, j'imagine que tu as crée le fichier manuellement puisque je ne vois pas de fopen dans ton code.

    J'ai trouvé une syntaxe qui fonctionne chez moi. Par contre, il faudrait m'expliquer pourquoi ça fonctionne ... Si on déplace les \", alors j'ai une erreur. Et là ça marche ...

    Et surtout, est-ce que ça passera aussi sous linux ?

    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
    #include <stdio.h> 
    int main(void) 
    { 
        char filename[1024]; 
        int loi=4; 
        int p=125; 
     
        FILE *fichier; 
     
        sprintf(filename, "Wolfram - Loi=%d - Pas=%d.ppm", loi, p);
        fichier = fopen(filename, "w"); 
        fclose(fichier);
     
        sprintf(filename, "\"Wolfra\"m \"- Loi=%df - Pas=%d.ppm", loi, p);
        system(filename); 
        getch();
        return 0; 
    }

Discussions similaires

  1. Exécuter un fichier .BAT sur une machine distante
    Par ruff15 dans le forum Windows
    Réponses: 4
    Dernier message: 14/09/2005, 11h44
  2. Commande MS DOS qui exécute un fichier C++.
    Par Furius dans le forum C++
    Réponses: 5
    Dernier message: 09/09/2005, 17h42
  3. Exécuter un fichier .sql
    Par joul's dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 11/02/2005, 12h18
  4. Exécuter un fichier à partir du code
    Par TheCool dans le forum ASP
    Réponses: 28
    Dernier message: 18/01/2005, 19h22
  5. exécution des fichiers index.php
    Par berry dans le forum Apache
    Réponses: 4
    Dernier message: 20/12/2004, 20h29

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