Titre: [C] Besoin d'aide pour fprintf Posté par: BeCool 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> Titre: [C] Besoin d'aide pour fprintf Posté par: capitaine 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); Titre: [C] Besoin d'aide pour fprintf Posté par: _o_ 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; Citation de: BeCool Code: system("PAUSE"); Titre: [C] Besoin d'aide pour fprintf Posté par: BeCool 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_ô Titre: [C] Besoin d'aide pour fprintf Posté par: _o_ 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.Titre: [C] Besoin d'aide pour fprintf Posté par: BeCool 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; Code: FILE *realmlist = NULL; Titre: [C] Besoin d'aide pour fprintf Posté par: capitaine 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 : 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.Code: FILE *realmlist = NULL; realmlist = fopen("C:\Program Files\World of Warcraft\realmlist.wtf", "r"); ? 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. Titre: [C] Besoin d'aide pour fprintf Posté par: BeCool 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 ) Titre: [C] Besoin d'aide pour fprintf Posté par: capitaine le 01 Juillet 2007 à 13:59:11 c'est ecrit noir sur bleu ici (http://www.siteduzero.com/tuto-3-4522-1-lire-et-ecrire-dans-des-fichiers.html) ;)
Titre: [C] Besoin d'aide pour fprintf Posté par: BeCool 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 Titre: [C] Besoin d'aide pour fprintf Posté par: BeCool le 01 Juillet 2007 à 14:50:13 Voila je **orthographe !** de finir mon programme :
Code: #include <stdio.h> 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 Titre: [C] Besoin d'aide pour fprintf Posté par: Leptis 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. Titre: [C] Besoin d'aide pour fprintf Posté par: capitaine 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 (http://www.siteduzero.com/tuto-3-2192-1-les-conditions.html#ss_part_3), tu verras c'est plus clair Titre: [C] Besoin d'aide pour fprintf Posté par: _o_ 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. Titre: [C] Besoin d'aide pour fprintf Posté par: BeCool 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 ;) Titre: [C] Besoin d'aide pour fprintf Posté par: _o_ le 01 Juillet 2007 à 21:47:29 Citation de: BeCool _o_ qu'est-ce que tu appel le 3ieme paramentre de fprintf ? Si tu es normalement constitué, tu as 5 doigts par main, essaie de compter dessus pour t'aider.Citation de: BeCool Pour ce qui est de fclose, je laisse comme sa pour le moment, ça évite de m'embrouiller le cevreau ;) C'est le contraire, justement. Ce serait beaucoup plus logique et plus clair de le mettre à la fin, et ça éviterait un bug.Citation de: BeCool 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 ;) Donc ça ne sera jamais corrigé.Bon, mais je vais arrêter de donner des conseils, visiblement, ça ne sert pas à grand chose. ^EOT Titre: [C] Besoin d'aide pour fprintf Posté par: BeCool le 02 Juillet 2007 à 17:33:00 Ce n'est pas que sa ne sert a pas grand choses. Juste que pour le moment je demande des conseils a propos de fprintf .
Capitaine répond trés bien a mes questions.. je ne demande pas plus ;) Si j'ai d'autre question sur comment faciliter ma programmation, je les demanderais ne t'en fais pas pour moi ;) Puis vu les réponses que tu me donne Citation de: _o_ Si tu es normalement constitué, tu as 5 doigts par main, essaie de compter dessus pour t'aider. C'est vachement constructif ca comme réponsse ...Citation de: _o_ Donc ça ne sera jamais corrigé. Ne tire pas de conclusion si attive. Si je dis que sa serra corrigé, c'est que sa le serra ;)________________________________________________________________________________________ Capitaine, j'ai suivi ton conseil, j'ai fais des switchs... Mais ca ne marche toujours pas ... :s _o_ j'ai voulu mettre un seul fclose mais avec les switchs je sais pas trop ou les mettres ... voila ce que ca donne: Code: #include <stdio.h> Titre: [C] Besoin d'aide pour fprintf Posté par: capitaine le 02 Juillet 2007 à 21:28:33 ouaip je vais pas te donner la réponse, tu peux surement venir à bout de ce problème tout seul.
Je te dis juste que tu t'es planté sur les switch. regarde bien comment ca s'utilise et revois ton menu. Pour le fclose, un seul devrait suffir. Titre: [C] Besoin d'aide pour fprintf Posté par: alph1 le 03 Juillet 2007 à 11:38:43 Bonjour,
deux erreurs principales dans la toute dernière version ci-dessus : le getchar() et il y a un seul switch ! (alors qu'il y a deux choix à faire) une version qui devrait fonctionner : Code: #include <stdio.h> Titre: [C] Besoin d'aide pour fprintf Posté par: Leptis le 03 Juillet 2007 à 15:24:02 Le premier switch ne sert à rien sinon à alourdir le code un simple if suffit amplement.
Titre: [C] Besoin d'aide pour fprintf Posté par: BeCool le 03 Juillet 2007 à 15:44:33 Ho put** merci alph1 !!! Sa marche !! =D
Je vous remerci tous de votre aide les mecs, c'est vraiment cool :) (dommage d'avoir eu la réponsse aussi facilement :p ( jamais content moi -_-" ) ) J'en profite pour demander autre chose. C'est quoi la commande pour lancer un .exe a partir d'un progr en C ? j'ai essaiyé : system("fichier.exe"); : marche pas system("C:\\chemin\\fichier.exe"); : marche pas system("start fichier.exe"); marche pas etc, etc, etc... rien ne marche :/ P.S: meme sur le site du zero, sa n'est pas expliqué dans le tutorial **No Sms** mateo... Titre: [C] Besoin d'aide pour fprintf Posté par: capitaine le 03 Juillet 2007 à 21:27:40 ouai fallait pas donner la réponse tout de suite, il aurait surement trouvé tout seul.
bref t'es sur que ca marche ca?: Code: fprintf(realmlist, "set realmlist urevolution.no-ip.org", "w"); Je comprends pas ton dernier probleme BeCool Titre: [C] Besoin d'aide pour fprintf Posté par: Folcan le 04 Juillet 2007 à 07:45:05 Mhmm
system("CMD.EXE" ); en théorie ca devrait fonctionner... Ou un exemple que g glaner sur le net : Code: char file[]="test.exe"; Titre: [C] Besoin d'aide pour fprintf Posté par: BeCool le 04 Juillet 2007 à 15:53:34 Yes Capitaine, pour moi ca marche niquel .
Mon dernier probleme est que je veux lancer un .exe ( le jeu ) avant que mon programme ce ferme. mais je trouve pas la commande. Folcan, fait mettre des majuscules dans les " ? parce que ci c'est le cas, c'est peut etre a cause de sa que sa ne marchait pas ... Je vais quand meme essayer ton exemple en éspérant que sa marche ;) Merci en tout cas. Edit : Bon je viens de tester, ca ne marche pas ... tes 2 solutions :s Titre: [C] Besoin d'aide pour fprintf Posté par: Leptis le 04 Juillet 2007 à 19:22:06 Pour lancer un fichier la commande c'est ShellExecute regarde la syntaxe sur le net.
Titre: [C] Besoin d'aide pour fprintf Posté par: BeCool le 04 Juillet 2007 à 20:42:36 Na c'est bon, merci :) j'ai trouver comment faire autrement et beaucoup plus simplement ;)
system("start c:\\progra~1\\worldo~1\\wow.exe"); voili voila ;) Titre: [C] Besoin d'aide pour fprintf Posté par: neoflo le 19 Septembre 2007 à 22:17:40 Il ne faut jamais oublier de tester la valeur de retour de fopen. Si l'ouverture échoue, ça retourne NULL et si vous cherchez à l'utiliser, ça va finir en Erreur de segmentation :D
Sinon, pour ton histoire de system("PAUSE"), tu peux utiliser un EDI comme code::blocks qui te bloque la fenêtre automatiquement à la fin. Sinon, tu peux garder un programme portable en mettant autour un : Code: #ifdef WIN32 |