begin process at 2012 05 29 16:51:06
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Linux

 > 

Autre

 > 

problem avec scanf et fwrite dans boucle while


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

problem avec scanf et fwrite dans boucle while

mercredi 26 juillet 2006 à 15:43:36 | problem avec scanf et fwrite dans boucle while

kamal93270

bonjour voici mon programme : #include #include int main() { int choix; FILE* fichier; while (1) { scanf("%d",&choix); if (choix > 99) { choix = 0; } fichier = fopen("C:\typeaffichage","wb"); if (fichier!=NULL) { fwrite(&choix,sizeof(int),1,fichier); fclose(fichier); } } sleep(1); return 0; } J'utilise ce programme sous linux. Lorsque je lance le prog, je saisie une fois la valeur pour choix et après l'execution s'arrête. Est-ce que quelqu'un pourraît m'aider à résoudre ce problème. Merci d'avance
mercredi 26 juillet 2006 à 15:53:50 | Re : problem avec scanf et fwrite dans boucle while

laurent1024

Membre Club
Lorsque je lance le prog, je saisie une fois la valeur pour choix et après
l'execution s'arrête. => tu veux dire que le programme ce termine  et  que tu as nouveau acces a la console ??
Normalement avec ton code, il devrait ce remettre en attente de saisie. Pour voir ce qu'il se passe rajoute des printf
(surtout devant le scanf, version "taper votre  choix")

++
mercredi 26 juillet 2006 à 16:03:38 | Re : problem avec scanf et fwrite dans boucle while

SAKingdom

Membre Club

Ou avec un débuggeur pour voir ce qui se passe pas à pas.

Ensuite, je ne sais pas ce que tu veux faire mais tu ouvre ton fichier en wb ce qui fait que chaque valeur ajouté écrasera l'autre. Il faut ouvrir en ab pour ajouter des valeurs. Ensuite, je ne sais pas ce que tu veut faire mais faire &choix va te renvoyer l'adresse de choix et donc, écrire dans le fichier une adresse plutot qu'une valeur.

C++ (@++)
___________________________________________
Les plus grands esprits trouvent toujours une solution

[ Lien ]
mercredi 26 juillet 2006 à 16:09:45 | Re : problem avec scanf et fwrite dans boucle while

vecchio56

Administrateur CodeS-SourceS
C'est marrant d'ouvrir le fichier C:\typeaffichage sous Linux. (en plus faut écrire C:\\ pas C:\ sinon \t est considéré comme une tabulation)
SAKingdom> C'est bien &choix qu'il faut mettre pour écrire la valeur de choix (comme on le ferait avec WriteFile)

_____________________________________
Un éditeur de ressources gratuit pour Windows

mercredi 26 juillet 2006 à 16:10:21 | Re : problem avec scanf et fwrite dans boucle while

laurent1024

Membre Club
Personnelement, je crois que le &choix est correct, car dans la fonction fwrite il faut un pointeur sur les donnees à écrire.

++
mercredi 26 juillet 2006 à 16:12:32 | Re : problem avec scanf et fwrite dans boucle while

SAKingdom

Membre Club
Ah je savais pas. Merci. Avec WriteFile aussi ??? Hmmm va faloir que je revoie quelque notions. J'en ai perdu un bout.

C++ (@++)
___________________________________________
Les plus grands esprits trouvent toujours une solution

[ Lien ]
mercredi 26 juillet 2006 à 16:14:36 | Re : problem avec scanf et fwrite dans boucle while

AlexN

Pour voir l'erreur, remplaces par :
    while (1)
    {
          scanf("%d",&choix);
          
          
          if (choix > 99)
          {
                    choix = 0;
          }

          fichier = fopen("C:\typeaffichage","wb");
          
          if (fichier != NULL)
          {
                            if ( fwrite(&choix,sizeof(int),1,fichier) < 1 )
                                perror("fwrite");
                            if ( fclose(fichier) == EOF )
                                perror("fclose");              
          }    else
              perror("fopen");
    }

perror est une fonction bien utile.
mercredi 26 juillet 2006 à 16:15:43 | Re : problem avec scanf et fwrite dans boucle while

SAKingdom

Membre Club
fichier = fopen("C:\typeaffichage","wb"); !!!!!!!!!
fichier = fopen("C:\\typeaffichage","wb"); OK

C++ (@++)
___________________________________________
Les plus grands esprits trouvent toujours une solution

[ Lien ]
mercredi 26 juillet 2006 à 16:16:08 | Re : problem avec scanf et fwrite dans boucle while

vecchio56

Administrateur CodeS-SourceS
Si fwrite prenait les données à écrire par valeur (plutot que leur adresse), ce serait compliqué d'écrire plus de 4 octets d'un coup

_____________________________________
Un éditeur de ressources gratuit pour Windows

mercredi 26 juillet 2006 à 16:28:28 | Re : problem avec scanf et fwrite dans boucle while

SAKingdom

Membre Club
Oui ok. J'étais un peu engourdie. Je comprend maintenant (après quelques baf pour me réveiller ;).

C++ (@++)
___________________________________________
Les plus grands esprits trouvent toujours une solution

[ Lien ]


Cette discussion est classée dans : fichier, while, choix, scanf, fwrite


Répondre à ce message

Sujets en rapport avec ce message

programme calculette [ par jeanphilippe37 ] [del]Bonjour[/del], Voila, j'ai réalisé une calculette mais je voudrais incorporer une lecteure de fichier qui contient les opérations et les résulta remplissage d'une variable depuis les données d'un fichier [ par sergioramos04 ] slt à tous, j'ai un fichier dont le contenu est: Granda Av paco siro Quartier vicenté Espagne 0675 35 62 32 45 PALMIRA n 35 AV angletter Espagne 05 fonction fread() [ par cacoucatatonique ] salut a tous, et oui c'est encore moi mais bon javoue que ca me donne du fil a retordre.voila je suis en train de faire un programme qui doit ecrire d Ecrire dans un fichier [ par pitidragon ] Bonjour !Je viens vous demandez de l'aide pour un programme en C. J'ai réalisé un démineur, jouable sur console, et je dois rajouter une fonction mais A quoi sa correspond ? [ par Ilsundal ] Bonjour, alors voici mon petit probleme, j'arrive pas a trouver a quoi correspond le "!" qui se trouve juste avant foef(fichier) dans la condition du fonction fread lit bizarrement un fichier texte [ par bilel59 ] Bonjour à tous, voici mon problème : j'écris dans le fichier vect3.txt 3 floats grâce à la fonction fwrite, cela se passe bien cependant, lorsque je v [C] pourquoi un problème de segmentation du fichier ? je connais ma faute mais comment faire ? [ par evenkil ] Bonjour à tousMon programma compile très bien, mais à l'execution il me dit que j'ai un problème de Segmentation.L'objectif du programme est :- lister demande d'aide (Gestion des fichiers et structures en C) [ par medsky ] Bonjour, Afin de manipuler les fichiers et les structures en C, On m'a demandé de réalisé une application qui cree un fichier pour saisir les inform Problème avec ios::app [ par kattig ] Bonjour tout le monde,J'ai un petit soucis avec ios::app ou avec la fonction scanf.Voici une partie de mon code:#include... fstream f; f.open("fichier Envoie de fichier. [ par kiitos ] Voici mes 2 morceaux de code qui ont un problème, recv() reçois mais fwrite() ne marque rien du tout. J'ai essayé  avec printf() et fprintf() mais dan


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,796 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales