CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[C] Fonctions fgetc et fwrite

Chaos_Clad
Chaos_Clad
Niveau 10
16 octobre 2004 à 15:12:47

Salut ! :salut:

Je suis en train de tester les différentes librairies de mon compilateur, et notamment < stdio.h>, sur un site.

Alors voilà, en partant d´un bout de code exposé ici http://www.cplusplus.com/ref/#libs j´ai écrit ça :

http://wall.cours-info.net/?id=266

Seulement la première partie du code fonctionne, arrivé à la deuxième, la console se bloque et il ne se passe plus rien :snif:
Quelqu´un peut-il me dire pourquoi ?

Merci :)

MathieuN7
MathieuN7
Niveau 10
16 octobre 2004 à 16:20:38

if(count = ´a´)

Cette condition sera toujours vraie, vu que tu pourras toujours assigner ´a´ à ta variable count ( et de ttes manières cette méthode est peu orthodoxe)
Tu peux utiliser strcmp ( librairie string.h), qui renvoit 0 si les deux chaines sont identiques.
Tu feras donc:
char a = " a";
if(strcmp(&, &) == 0)
http://www.programmationworld.com/site/Cours.asp?Action=cours&Numero=109#_topic_10

Je pense que ça devrait fonctionner, ou tout du moins débloquer un peu ton prog

MathieuN7
MathieuN7
Niveau 10
16 octobre 2004 à 16:21:47

non, plutot:

strcmp(&, " a");

je ne suis pas sûr pour le &

DasHuhn
DasHuhn
Niveau 10
16 octobre 2004 à 18:49:41

Si... tu regardes ton code...

pFile = fopen ( "C:\\Documents and Settings\\alphabet.txt","w");
. ..

count = fgetc(pFile);

. ..tu essayes de lire le fichier alors qu´il est ouvert en écriture.

++

DasHuhn
DasHuhn
Niveau 10
16 octobre 2004 à 18:51:17

Sinon le reste m´a l´air correct.

DasHuhn
DasHuhn
Niveau 10
16 octobre 2004 à 18:55:42

Ah et t´es sur du %n pour le printf ? Je sais que ça existe, mais je comprends pas le manuel à ce passage alors je pose la question : skoitesce ?

MathieuN7
MathieuN7
Niveau 10
16 octobre 2004 à 19:19:22

ah oui!!
Bien vu dashuhn :rire:
Donc tu dois fermer le fichier qui est ouvert en écriture, et le réouvrir en lecture ( rb ou r)

Chaos_Clad
Chaos_Clad
Niveau 10
16 octobre 2004 à 20:17:11

Ok merci les gars ; )

Chaos_Clad
Chaos_Clad
Niveau 10
16 octobre 2004 à 20:30:01

Et pour le %n c´est un formateur ( je crois que ça s´appelle comme ça) qui récupère une valeur int.

MathieuN7
MathieuN7
Niveau 10
16 octobre 2004 à 20:39:08

j´aurais mis %i moi

Chaos_Clad
Chaos_Clad
Niveau 10
16 octobre 2004 à 20:54:59

Mais pour le réouvrir, je dois simplement lui demander de le réouvrir, ou alors le fermer, redéfinir un pointeur sur le fichier et l´ouvrir :question:

DasHuhn
DasHuhn
Niveau 10
16 octobre 2004 à 21:52:59

Façon propre : tu fermes et tu réutilises la même variable pour réouvrir. Façon crade : tu fermes même pas.

MathieuN7
MathieuN7
Niveau 10
16 octobre 2004 à 22:48:18

lol
Ben tu fais
fclose(pFile);
pFile = fopen ( "C:\\Documents and Settings\\alphabet.txt","r");

Chaos_Clad
Chaos_Clad
Niveau 10
17 octobre 2004 à 15:28:25

C´est ce que j´ai fait, mais là le programme me dit carrément qu´il y a une erreur et se ferme.

http://wall.cours-info.net/?id=269

Chaos_Clad
Chaos_Clad
Niveau 10
17 octobre 2004 à 15:29:28

:lol: j´y crois pas ! Tout ça parce que j´ai mis %n au lieux de %i :rire:

Bon maintenant ça marche, merci les gars ; -)

DasHuhn
DasHuhn
Niveau 10
17 octobre 2004 à 17:16:32

PRINTF(3) Manuel du programmeur Linux PRINTF(3)
. ..

%n Le nombre de caractères déjà écrits est stocké dans l´entier indiqué par l´argument pointeur de type int *. Aucun argument n´est converti.

Héhéhé...

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment