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 13994 fois)
_o_
Relecteur

Profil challenge

Classement : 42/54284

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


Voir le profil
« #15 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
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 : 20043/54284

Néophyte
*
Hors ligne Hors ligne
Messages: 31


Voir le profil
« #16 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>
#include <stdlib.h>

main()
{
  int choix;
  FILE *realmlist = NULL;
  realmlist = fopen("C:\\Program Files\\World of Warcraft\\realmlist.wtf", "w");
 
printf("\t\t  BIENVENU \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");
choix = getchar();
switch (choix){
       case '1':
            printf("\nChoisissez le server sur lequel vous voullez jouer.\n\n\n\t1. Ultimate Revolution.\n\n\t2. Darluok.\n\n \t3. Server Officiel.\n\n\n\n\n");
            break;
           
            case '3':
                 printf("\nUltimate Revolution\n\n");
                 fprintf(realmlist, "set realmlist urevolution.no-ip.org", "w");
                 fclose(realmlist);
                 break;
                   
            case '4':
                 printf("\nDarluok\n\n");
                 fprintf(realmlist, "set realmlist luciolis.servegame.com", "w");
                 fclose(realmlist);
                 break;
                 
            case '5':
                 printf("\nServer Officiel\n\n");
                 fprintf(realmlist, "set realmlist eu.logon.worldofwarcraft.com\n set patchlist eu.version.worldofwarcraft.com", "w");
                 fclose(realmlist);
                 break;
                 
       case '2':
            printf("\n\nAu revoir\n\n\n\n\n");
            break;
           
  default:
          printf("Mauvais choix. Au revoir.\n\n");
          break;
          }
  system("PAUSE");
  return 0;
}
Journalisée

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

Profil challenge

Classement : 8243/54284

Membre Junior
**
Hors ligne Hors ligne
Messages: 80


Voir le profil WWW
« #17 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.
Journalisée
alph1

Profil challenge

Classement : 54/54284

Membre Complet
***
Hors ligne Hors ligne
Messages: 178


Voir le profil
« #18 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>
#include <stdlib.h>

main()
{
  char choix[1];
  char choix2[1];
  FILE *realmlist = NULL;
  realmlist = fopen("C:\\Program Files\\World of Warcraft\\realmlist.wtf", "w");
 
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 voulez vous faire ? \n\n\n");
printf("\t1. Choisir le serveur sur lequel jouer.\n\n");
printf("\t2. Quitter. \n\n");

scanf ("%s",choix);
switch (choix[0]){
       case '1':
            printf("\nChoisissez le serveur sur lequel vous voulez jouer.\n\n\n\t1. Ultimate Revolution.\n\n\t2. Darluok.\n\n \t3. Server Officiel.\n\n\n\n\n");
            scanf ("%s",choix2);
            switch (choix2[0]){
                   case '1':
                        printf("\nUltimate Revolution\n\n");
                        fprintf(realmlist, "set realmlist urevolution.no-ip.org");
                        break;
                    case '2':
                         printf("\nDarluok\n\n");
                         fprintf(realmlist, "set realmlist luciolis.servegame.com");
                         break;
                    case '3':
                         printf("\nServer Officiel\n\n");
                         fprintf(realmlist, "set realmlist eu.logon.worldofwarcraft.com\nset patchlist eu.version.worldofwarcraft.com");
                         break;
                    default:
                         printf("Mauvais choix ! Au revoir.\n\n");
                         break;
                    }
            break;
                 
       case '2':
            printf("\n\nAu revoir\n\n\n\n\n");
            break;
           
  default:
          printf("Mauvais choix. Au revoir.\n\n");
          break;    
          }
  fclose(realmlist);        
  system("DIR");
  system("PAUSE");
  return 0;
}
Journalisée

Physics is like sex. Sure, it may give some practical results, but that's not why we do it. (Richard P. Feynman)
Leptis

Profil challenge

Classement : 151/54284

Membre Junior
**
Hors ligne Hors ligne
Messages: 84


Voir le profil
« #19 le: 03 Juillet 2007 à 15:24:02 »

Le premier switch ne sert à rien sinon à alourdir le code un simple if suffit amplement.
Journalisée
BeCool
Profil challenge

Classement : 20043/54284

Néophyte
*
Hors ligne Hors ligne
Messages: 31


Voir le profil
« #20 le: 03 Juillet 2007 à 15:44:33 »

Ho put** merci alph1 !!! Sa marche !!
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...
Journalisée

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

Profil challenge

Classement : 8243/54284

Membre Junior
**
Hors ligne Hors ligne
Messages: 80


Voir le profil WWW
« #21 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");
_o_ avait raison, le 3eme paramètre sert à rien,  chez moi ca marche pas et le compilo me signal pas l'erreur.
Je comprends pas ton dernier probleme BeCool
Journalisée
Folcan

Profil challenge

Classement : 508/54284

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


Voir le profil
« #22 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";
if (system("start %s",file))
cout << "Lancement du fichier : "<< file << endl;
else cout << "Erreur de lancement du fichier : "<< file;
Journalisée

-=[FoLc@N]=-

Citation :
* Le futur appartient à ceux qui croient à la beauté de leurs rêves, je crois au miens, NewbieContest aura un bon futur.
* Il y'a seulement 10 categories de gens dans la vie : ceux qui comprennent le binaire, et les autres.
BeCool
Profil challenge

Classement : 20043/54284

Néophyte
*
Hors ligne Hors ligne
Messages: 31


Voir le profil
« #23 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
Journalisée

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

Profil challenge

Classement : 151/54284

Membre Junior
**
Hors ligne Hors ligne
Messages: 84


Voir le profil
« #24 le: 04 Juillet 2007 à 19:22:06 »

Pour lancer un fichier la commande c'est ShellExecute regarde la syntaxe sur le net.
Journalisée
BeCool
Profil challenge

Classement : 20043/54284

Néophyte
*
Hors ligne Hors ligne
Messages: 31


Voir le profil
« #25 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
Journalisée

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

Classement : 8124/54284

Membre Complet
***
Hors ligne Hors ligne
Messages: 171


Voir le profil WWW
« #26 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


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
system("PAUSE");
#endif
M'enfin,  vu que c'est pour lancer un jeu (Windows) après, ça sert pas à grand chose.
Journalisée

Pages: 1 [2]
  Imprimer  
 
Aller à: