Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1319 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Ouverture de fichier sous windows

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Ouverture de fichier sous windows

n°1294391
StrAbZ
Posté le 30-01-2006 à 01:02:32  profilanswer
 

Bonjour.
 
Ayant parié avec un ami que j'arriverai a coder sous windows comme on peux le faire sous macos ou linux avec "juste" les cmd msdos et en tapant "gcc filename.c" je me suis lancé dans cette aventure.
 
bref voila que j'ai tt installé, emacs etc.... ca fait zarb sous windows je vous l'accorde, gcc aussi est installé, les lib et autre include aussi, bref j'ai voulu faire un programme tout simple que voici :
 

Code :
  1. #include <stdio.h>
  2. int main(int argc, char **argv)
  3. {
  4.   FILE *file = NULL;
  5.   int i = 0;
  6.   int j = 0;
  7.   if (argc != 2)
  8.     {
  9.       printf("You forgot the file !!!\n" );
  10.       return 1;
  11.     }
  12.   else
  13.     {
  14.       printf("plop\n" );
  15.       printf("argv[1]: %s\n", argv[1]);
  16.       if ((file = fopen(argv[1], "rb" )) == NULL)
  17. {
  18.   printf("Can't open the file !\n" );
  19.   return 2;
  20. }
  21.       fscanf(file, "< %d %d >", i, j);
  22.       printf("Valeur de i: %d\n", i);
  23.       printf("Valeur de j: %d\n", j);
  24.       close(file);
  25.     }
  26.   return 0;
  27. }


 
Mon probleme est qu'a l'execution du prog, windows m'affiche le message comme quoi l'appli a rencontré un pb est doit fermé.
Et ce juste au niveau de mon fopen (le printf au dessus s'affiche).
Bref je voulais donc savoir si sous windows il y avai un probleme a passer un argv de la sorte dans un fopen... faut il le chemin complet pour qu cela marche....... ca me parait tout de meme bizzard :D
 
Donc si vous avez une idée je suis preneur, au pire j'aurai perdu un pari, mais c'est pas grave et au mieux ca aura enrichie ma culture en programmation :D
 
Merci d'avance !
 
EDIT: desole ca ne marcher pas en fait a cause des '&' oublier devant 'i' et 'j' dans fscanf....
par contre aucun message d'erreur lors de la compilation ....

Message cité 1 fois
Message édité par StrAbZ le 30-01-2006 à 01:05:10
mood
Publicité
Posté le 30-01-2006 à 01:02:32  profilanswer
 

n°1294420
Emmanuel D​elahaye
C is a sharp tool
Posté le 30-01-2006 à 08:32:29  profilanswer
 

StrAbZ a écrit :

j'ai voulu faire un programme tout simple que voici :



Compiling: main.c
main.c: In function `main':
main.c:23: warning: format argument is not a pointer (arg 3)
main.c:23: warning: format argument is not a pointer (arg 4)
main.c:26: error: implicit declaration of function `close'
main.c:26: warning: nested extern declaration of `close'
Process terminated with status 1 (0 minutes, 0 seconds)
1 errors, 3 warnings


Evidemment, il faut apprendre à regler correctement son compilateur... Au minimumm :  

-Wall -Wextra (ou -W si trop ancien) -O2


Remarques et corrections...


#include <stdio.h>
 
int main(int argc, char **argv)
{
   FILE *file = NULL;
   int i = 0;
   int j = 0;
 
   if (argc != 2)
   {
      printf("You forgot the file !!!\n" );
      return 1;
   }
   else
   {
      printf("plop\n" );
      printf("argv[1]: %s\n", argv[1]);
      if ((file = fopen(argv[1], "rb" )) == NULL)
      {
         printf("Can't open the file !\n" );
         return 2;
      }
/* -ed-
      fscanf(file, "< %d %d >", i, j);
pas du C...
*/
      fscanf(file, "< %d %d >", &i, &j);
 
      printf("Valeur de i: %d\n", i);
      printf("Valeur de j: %d\n", j);
/* -ed-
      close(file);
pas du C...
*/
      fclose(file);
 
   }
   return 0;
}


Message édité par Emmanuel Delahaye le 30-01-2006 à 08:35:24

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1294424
chrisbk
-
Posté le 30-01-2006 à 08:47:42  profilanswer
 

Code :
  1. if (argc != 2)
  2.    {
  3.       printf("You forgot the file !!!\n" );
  4.       return 1;
  5.    }
  6.    else
  7.    {


 
je m'eleve contre ce else a l'inutilité patente qui ne sert qu'a embrumer l'esprit et a obscurcir la raison

n°1297120
StrAbZ
Posté le 02-02-2006 à 03:34:41  profilanswer
 

ouaip, d'accord pour le else... j'aurai du le voir ^^
 
quand au close c'est une faute de frappe de ma part.
 
par contre pour les flags j'ai compiler avec -W -Werror, ce qui qurai du me peter a la gueule... d'ou ma surprise sur le fait que je n'ai pas eu de message d'erreur.
 
malgres tt pb regle, merci quand meme ;)

Message cité 1 fois
Message édité par StrAbZ le 02-02-2006 à 03:36:11
n°1297140
Emmanuel D​elahaye
C is a sharp tool
Posté le 02-02-2006 à 08:54:14  profilanswer
 

StrAbZ a écrit :

par contre pour les flags j'ai compiler avec -W -Werror,


Comme déjà expliqué, insuffisant.
 
-Wall -Wextra -O2
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Ouverture de fichier sous windows

 

Sujets relatifs
Fichier .SOsauvergarde dans un autre fichier et erase
Fichier exe qui me renvoie une erreur 445 ?Erreur Api Windows
Placer un menu dans un autre fichierEcrit dans un fichier distant
cdc-cvm sous windowsRafraichissement fenetre video windows media player
Se placer dans un fichierOuverture de fichier en interface graphique sous windows et linux
Plus de sujets relatifs à : Ouverture de fichier sous windows


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR