logo Homepage
+  NewbieContest
|-+  Programmation» Langages compilés» [C] Besoin d'aide pour fprintf
Username:
Password:
Pages: [1] 2
  Imprimer  
Auteur Fil de discussion: [C] Besoin d'aide pour fprintf  (Lu 14025 fois)
BeCool
Profil challenge

Classement : 20060/54319

Néophyte
*
Hors ligne Hors ligne
Messages: 31


Voir le profil
« le: 01 Juillet 2007 à 11:19:15 »

Salut a tous, je débute dans le C et j'ai créer un programme dans le but de changer le text ecris dans un fichier suivant le choix que l'on fait ...

En fait, je joue a World Of Warcraft sur server priver  et sa me soule de toujours changer le realmlist pour me connecter sur des server differents a chaque fois.

Code:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main(int argc, char *argv[])
{
  long choix1 = 0 , choix2 = 0 , choix3 = 0 , choix4 = 0 , choix5 = 0;
  FILE *realmlist.wtf = NULL;
 
printf("\t\t  BIENVENUE \n\n");
printf("\t\tSUR LE CHANGEUR \n\n");
printf("\t\t DE REALMLIST \n\n\n");
printf("\t - - - - - - - - - - - - - - -  \n\n");


printf("Que voullez vous faire ? \n\n\n");
printf("\t1. Choisir le server sur lequel jouer.\n\n");
printf("\t2. Quitter. \n\n");
scanf("%ld", &choix1);

if (choix1 == 1 ) { printf ("Choisissez le server sur lequel vous voullez jouer.\n\n\n\t1. Ultimate Revolution.\n\n\t2. Darluok.\n\n \t3. Server Officiel.\n\n" ); }
   scanf("%ld", choix2);
   
   if (choix2 == 1 )
   {
   printf ("Votre jeu a était configurer pour jouer sur le server désire.");
   fprintf (fopen, ("blabla"), r);
   fclose (C:\Program Files\World of Warcraft\realmlist.wtf);
}
   
   
   
  system("PAUSE");    
  return 0;
}
qq1 aurait il une idée pour arriver a résoudre mon probleme qui est le fprintf ? ( j'arrive pas a utiliser le fprintf ) ... :s
Journalisée

La vie n'est qu'un jeux dont le prix est la mort.
capitaine

Profil challenge

Classement : 8244/54319

Membre Junior
**
Hors ligne Hors ligne
Messages: 80


Voir le profil WWW
« #1 le: 01 Juillet 2007 à 12:42:05 »

'tain jamais joué à wow, faudrait que je test un jours...
le fprintf s'utilise plutot comme ca:

FILE *Realmlist = NULL;
Realmlist = fopen("realmlist.wtf", "w");
fprintf(Realmlist, "blabla");
fclose(Realmlist);
Journalisée
_o_
Relecteur

Profil challenge

Classement : 42/54319

Membre Héroïque
*
Hors ligne Hors ligne
Messages: 1258


Voir le profil
« #2 le: 01 Juillet 2007 à 12:44:10 »

Citation de: BeCool
qq1 aurait il une idée pour arriver a résoudre mon probleme qui est le fprintf ? ( j'arrive pas a utiliser le fprintf ) ... :s
Oui, bon, alors, l'écriture dans un fichier en C, c'est pas compliqué et c'est décrit sur pleins de sites différents. Par exemple, au hasard :
http://www.siteduzero.com/tuto-3-4522-1-lire-et-ecrire-dans-des-fichiers.html

Citation de: BeCool
Code:
  FILE *realmlist.wtf = NULL;
[...]
   fprintf (fopen, ("blabla"), r);
   fclose (C:\Program Files\World of Warcraft\realmlist.wtf);
Ouuuuuuuuch. Faut arrêter la fumette.

Citation de: BeCool
Code:
  system("PAUSE");
Ça aussi faut arrêter : c'est non portable (DOS only), ça ne marche qu'en interactif (le jour où l'on veut embarquer le truc dans un script, faut bidouiller pour simuler l'appui sur une touche), et c'est juste pour contourner le fait qu'une fenêtre de commande dos se ferme toute seule (alors que si je me souviens bien, il y a un réglage pour l'empêcher).
Journalisée

Les épreuves de hack de NC sont trop faciles ? Et pourtant ! Bienvenue dans la vraie vie : http://thedailywtf.com/Articles/So-You-Hacked-Our-Site!.aspx
BeCool
Profil challenge

Classement : 20060/54319

Néophyte
*
Hors ligne Hors ligne
Messages: 31


Voir le profil
« #3 le: 01 Juillet 2007 à 12:52:41 »

Merci beaucoup capitain !!!

Pour ce qui est de _o_, je te dis, je ne suis que débutant donc soyez indulgent ^^
Le site du zero, jsuis aller y faier un tou mais les gens me répondaient des trucs que je comprend pas -_-"
Pour ce qui est de "system("PAUSE");" sisi, c'est bien ce qu'il faut au bon endroit, sa permet de faire une pause a ma fenetre MS-DOS et pour pouvoir continuer, il faut appuyer sur une touche

Edit : Capitain, un conseil, n'éssaille jamais WoW ^^ a moin que tu ais envie de devenir no-life ? O_ô
Journalisée

La vie n'est qu'un jeux dont le prix est la mort.
_o_
Relecteur

Profil challenge

Classement : 42/54319

Membre Héroïque
*
Hors ligne Hors ligne
Messages: 1258


Voir le profil
« #4 le: 01 Juillet 2007 à 13:25:09 »

Citation de: BeCool
Le site du zero, jsuis aller y faier un tou mais les gens me répondaient des trucs que je comprend pas -_-"
Bon, mais ça sert à rien de poser des questions si l'on n'a pas les bases. En l'occurrence, l'url que j'ai mentionnée plus haut explique comment il faut faire. C'est seulement quand on pense avoir compris et que cela ne marche toujours pas que l'on pose des questions. La doc est là, il faut l'utiliser.

Citation de: BeCool
Pour ce qui est de "system("PAUSE");" sisi, c'est bien ce qu'il faut au bon endroit, sa permet de faire une pause a ma fenetre MS-DOS et pour pouvoir continuer, il faut appuyer sur une touche
Oui, voilà, ça ne sert à rien, c'est même casse-pied, mais j'ai déjà donné mes arguments plus haut.
Journalisée

Les épreuves de hack de NC sont trop faciles ? Et pourtant ! Bienvenue dans la vraie vie : http://thedailywtf.com/Articles/So-You-Hacked-Our-Site!.aspx
BeCool
Profil challenge

Classement : 20060/54319

Néophyte
*
Hors ligne Hors ligne
Messages: 31


Voir le profil
« #5 le: 01 Juillet 2007 à 13:31:10 »

Ui je sias , mais pour le system pause, je verrais plus tard le probleme :p

J'ai les bases .. mais j'ai du mal a assimiler tout de suite . donc bon ^^

Capitaine, apparament, ce que tu m'a écris marche... enfin dumoin sa ne créer pas de bug . Par contre, sa n'écris pas dans mon realmlist ce que je veux :s .
J'ai chager le mode "w" par "r" mais pareil. Ca viens de quoi ce probleme ?

Edit : A si ca a marcher, mais sa m'as créer un dossier realmlist.wtf dans mon dossier ou je save mes application que je developpe ( dossier : C )
et dans le fichier créer, il n'y a rien d'écris.

Code:
FILE *realmlist = NULL;
realmlist = fopen("realmlist.wtf", "r");
je remplace par :

Code:
FILE *realmlist = NULL;
realmlist = fopen("C:\Program Files\World of Warcraft\realmlist.wtf", "r");
?
Journalisée

La vie n'est qu'un jeux dont le prix est la mort.
capitaine

Profil challenge

Classement : 8244/54319

Membre Junior
**
Hors ligne Hors ligne
Messages: 80


Voir le profil WWW
« #6 le: 01 Juillet 2007 à 13:50:07 »

_o_ t'as donné un lien sur le sujet et tu prends meme pas la peine de le lire on dirait.
Citation
je remplace par :

Code:

FILE *realmlist = NULL;
realmlist = fopen("C:\Program Files\World of Warcraft\realmlist.wtf", "r");

?
si tu veux ecrire dedans pourquoi tu utilises le mode "r" (read only)? si tu veux ecrire dans ton fichier utilises w, r+ ou w+ ca depend de ce que tu veux faire.
Pour le probleme de destination du fichier et bien tu devrais trouvé la solution sur la page donné par _o_. c'est un problème d'antislash peut etre, bref j'en dis pas plus. ou alors tu lances ton exe depuis ton repertoire wow au pire.
Journalisée
BeCool
Profil challenge

Classement : 20060/54319

Néophyte
*
Hors ligne Hors ligne
Messages: 31


Voir le profil
« #7 le: 01 Juillet 2007 à 13:56:15 »

Ui au pire je ferrais ca ^^
Bha en fait ce que je veux, c'est effacer ce qu'il y a deja écris dans mon realmlist et ercire a la place autre chose. Donc si je ne me trompe pas, c'est r+ non ?

Edit : ok je viens de regarder sur le site du zero, c'est de ma faute, dans le chemain, faut que je mette \\ au lieu de \ .

( désolé si j'suis un boulet :p )
Journalisée

La vie n'est qu'un jeux dont le prix est la mort.
capitaine

Profil challenge

Classement : 8244/54319

Membre Junior
**
Hors ligne Hors ligne
Messages: 80


Voir le profil WWW
« #8 le: 01 Juillet 2007 à 13:59:11 »

c'est ecrit noir sur bleu ici
Journalisée
BeCool
Profil challenge

Classement : 20060/54319

Néophyte
*
Hors ligne Hors ligne
Messages: 31


Voir le profil
« #9 le: 01 Juillet 2007 à 14:04:03 »

Ui je viens de vérifier son mon bouquin ( Le Langage C ) et apparament c'est bien ça.

Par contre, je viens peut etre de comprendre pour sa change pas le contenu de mon fichier . Peut etre parce que j'ai pas fini mon programme ? O_o
Journalisée

La vie n'est qu'un jeux dont le prix est la mort.
BeCool
Profil challenge

Classement : 20060/54319

Néophyte
*
Hors ligne Hors ligne
Messages: 31


Voir le profil
« #10 le: 01 Juillet 2007 à 14:50:13 »

Voila je **orthographe !** de finir mon programme :

Code:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main(int argc, char *argv[])
{
  long choix1 = 0 , choix2 = 0 ;
  FILE *realmlist = NULL;
  realmlist = fopen("C:\\Program Files\\World of Warcraft\\realmlist.wtf", "r");
 
printf("\t\t  BIENVENUE \n\n");
printf("\t\tSUR LE CHANGEUR \n\n");
printf("\t\t DE REALMLIST \n\n\n");
printf("\t - - - - - - - - - - - - - - -  \n\n");


printf("Que voullez vous faire ? \n\n\n");
printf("\t1. Choisir le server sur lequel jouer.\n\n");
printf("\t2. Quitter. \n\n");
scanf("%ld", &choix1);

if (choix1 == 1 ) { printf ("Choisissez le server sur lequel vous voullez jouer.\n\n\n\t1. Ultimate Revolution.\n\n\t2. Darluok.\n\n \t3. Server Officiel.\n\n" ); }
   scanf("%ld", choix2);
   
   if (choix2 == 1 )
   {
   printf ("Votre jeu a était configurer pour jouer sur le server désire.");
   fprintf(realmlist, "set realmlist urevolution.no-ip.org", "w+");
   fclose(realmlist);
   }
   else if ( choix2 == 2 )
   {
   printf ("Votre jeu a était configurer pour jouer sur le server désire.");
   fprintf(realmlist, "set realmlist luciolis.servegame.com", "w+");
   fclose(realmlist);
   }
   else if ( choix2 == 3 )
   {
   printf ("Votre jeu a était configurer pour jouer sur le server désire.");
   fprintf(realmlist, "set realmlist eu.logon.worldofwarcraft.com\n set patchlist eu.version.worldofwarcraft.com", "w+");
   fclose(realmlist);
   }
else
printf("Au revoir.");  

  system("PAUSE");
  return 0;
}
Mais j'ai des problemes.
1 : quand je fait quitter des le début, j'ai l'impression que sa ne marche pas.
2 : j'ai beau avoir fait ce que capitaine m'a dis, sa n'écris pas dans mon réalmlist ... :s
Journalisée

La vie n'est qu'un jeux dont le prix est la mort.
Leptis

Profil challenge

Classement : 151/54319

Membre Junior
**
Hors ligne Hors ligne
Messages: 84


Voir le profil
« #11 le: 01 Juillet 2007 à 15:10:41 »

1) ton accolade de if (choix1 = 1 ) est mal placée elle dois inclure scanf("%ld", choix2);
=>if (choix1 == 1 )
{
 printf ("Choisissez le server sur lequel vous voullez jouer.\n\n\n\t1. Ultimate Revolution.\n\n\t2. Darluok.\n\n \t3. Server Officiel.\n\n" );
 scanf("%ld", choix2);
}

2) C'est pas r mais w qu'il faut mettre dans fopen: t'as pas besoin du mode lecture tu veux juste écrire dedant;

met toi au c++ l'écriture des fichiers est plus intuitive à mon avis.
Journalisée
capitaine

Profil challenge

Classement : 8244/54319

Membre Junior
**
Hors ligne Hors ligne
Messages: 80


Voir le profil WWW
« #12 le: 01 Juillet 2007 à 15:13:08 »

Il ouvre en lecture seule au debut aussi, c pour ca que ca marche pas.
Pour ce qui est de quitter le programme c normal aussi , essai en utilisant un switch, tu verras c'est plus clair
Journalisée
_o_
Relecteur

Profil challenge

Classement : 42/54319

Membre Héroïque
*
Hors ligne Hors ligne
Messages: 1258


Voir le profil
« #13 le: 01 Juillet 2007 à 15:20:19 »

Et aussi :
- il faut toujours tester le code retour de fopen pour vérifier que l'ouverture du fichier s'est bien passée.
- le troisième paramètre de fprintf ne sert à rien ici (et un bon compilo affichera un avertissement à ce sujet).
- il ne sert à rien de mettre un fclose dans chacun des blocs. Un général à la fin suffira (et en l'occurrence, le fichier n'est pas fermé si on quitte tout de suite).
- il y a des faute d'orthographe un peu partout.
Journalisée

Les épreuves de hack de NC sont trop faciles ? Et pourtant ! Bienvenue dans la vraie vie : http://thedailywtf.com/Articles/So-You-Hacked-Our-Site!.aspx
BeCool
Profil challenge

Classement : 20060/54319

Néophyte
*
Hors ligne Hors ligne
Messages: 31


Voir le profil
« #14 le: 01 Juillet 2007 à 21:37:55 »

Merci beaucoup de vos réponsses, mais ca ne marche toujours pas, meme en mode w ... j'ai tout **orthographe !** les modes :s

Capitaine, je connais les switch mais il faut que je m'y remet car a vrai dire, j'ai oublier. Je sais c'est pas dur

_o_ qu'est-ce que tu appel le 3ieme paramentre de fprintf ?

Pour ce qui est de fclose, je laisse comme sa pour le moment, ça évite de m'embrouiller le cevreau

Pour ce qui est des fautes, je sais que je ne suis pas un éxpert dans la langue.. Je verrais ca une fois le programme fini
Journalisée

La vie n'est qu'un jeux dont le prix est la mort.
Pages: [1] 2
  Imprimer  
 
Aller à: