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 :

probleme enregistrement fichier en C, bug Bizarre


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti

    Inscrit en
    Janvier 2011
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 31
    Billets dans le blog
    1
    Par défaut probleme enregistrement fichier en C, bug Bizarre
    Bonjour, j'ai un problème avec les enregistrements de fichiers en C

    voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #include <stdio.h>
    #include <stdlib.h>
     
    int main(int argc, char* argv[])
    {       
     
       FILE * f=fopen("test.cfg","w");
       fprintf(f,"test");
       fclose(f);
       system("PAUSE");
       return 0;
    }
    quand j'exécute sans lui passer d'arguments, simplement en faisant un double-clic, tout se passe normalement, le fichier "test.cfg" est créé, tout va pour e mieux... MAIS, quand je asse par la console Windows, le programme s'exécute nickel, mais le fichier "test.cfg" n'est PAS créé... de même lors que je passe quelque chose en argument via la console, ou quand je fais glisser un fichier dessus (pour "ouvrir le fichier avec" mon programme. autre chose étrange, c'est que je peux passer des paramètres au programme par mon IDE (dev-c++)et le "test.cfg" est là aussi enregistré...

    Bref, est-ce un problème relatif à xp, est-ce que je suis le seul chez qui ça fait ça, sinon, comment régler le problème...

    Merci d'avance

    (config: windows xp / mingw 4.4.0)

  2. #2
    Membre Expert Avatar de fregolo52
    Homme Profil pro
    Développeur C
    Inscrit en
    Août 2004
    Messages
    2 366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Août 2004
    Messages : 2 366
    Par défaut
    Salut,

    Sans trop me mouiller, je dirais : Si si, le fichier est créé, mais où ?

    Fais un test avec un chemin absolu, style :
    FILE * f=fopen("c:\\test.cfg","w");

  3. #3
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 127
    Billets dans le blog
    149
    Par défaut
    Dans le cas du "ouvrir avec" cela doit être dans un dossier temporaire de Windows.
    Par la console Windows, c'est dans le dossier courant logiquement
    de même lors que je passe quelque chose en argument via la console
    pas sur que le programme soit ouvert comme ça ... sinon soit dans le dossier où se trouve cmd.exe soit dans le dossier ou s'ouvre cmd.exe

    autre chose étrange, c'est que je peux passer des paramètres au programme par mon IDE (dev-c++)et le "test.cfg" est là aussi enregistré...
    Je ne comprends absolument pas. Votre programme ne gère pas vraiment les aguments, donc en passer ou pas, ne change absolument rien ...
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  4. #4
    Membre extrêmement actif
    Avatar de lilington
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 681
    Par défaut
    visiblement il ya un truc biz car ce code ne gere pas les arguments comme dit plus haut. donc on peut deduire que oubien tu fais pas attention a ce qui ce passe reelement oubien c'est ton XP qui se moque te toi.

    pour etre rassure sur la creation du fichier fais comme on t'a dit c'est a dire mets un chemin absolut. puis fait un test pour etre sure que le fichier est creer.
    car ton printf sera afficher quoi qu'il en soit meme si ton fichier n'est pas creer.
    la seule chose qui pourait empecher son affichage est que fopen plante.
    test comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    FILE * f=fopen("test.cfg","w");
     
    if(f==NULL)
    {
       printf("creation du fichier echoue\n");
       return 0;
    }
    fprintf(f,"test");
    fclose(f);
    return 0;
    donc si test apparait c'est que ton fichier est bien creee alors cheches le.

Discussions similaires

  1. VB 2008 probleme enregistrement BDD bizarre
    Par gauth62 dans le forum VB.NET
    Réponses: 44
    Dernier message: 04/10/2011, 08h30
  2. probleme enregistrement fichiers sur vista
    Par hakurou dans le forum Windows Vista
    Réponses: 14
    Dernier message: 21/11/2007, 11h36
  3. Réponses: 5
    Dernier message: 08/11/2007, 10h15
  4. [VBA-E] probleme enregistrement fichier pour VBA excel
    Par hamster. dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/04/2007, 19h52
  5. Réponses: 1
    Dernier message: 19/03/2007, 20h57

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