Probleme programme en c
Fermé
yacinebosss
Messages postés
156
Date d'inscription
jeudi 27 décembre 2012
Statut
Membre
Dernière intervention
18 décembre 2021
-
Modifié par yacinebosss le 27/12/2015 à 17:50
yacinebosss Messages postés 156 Date d'inscription jeudi 27 décembre 2012 Statut Membre Dernière intervention 18 décembre 2021 - 29 déc. 2015 à 17:04
yacinebosss Messages postés 156 Date d'inscription jeudi 27 décembre 2012 Statut Membre Dernière intervention 18 décembre 2021 - 29 déc. 2015 à 17:04
A voir également:
- Probleme programme en c
- Programme demarrage windows 10 - Guide
- Désinstaller programme windows 10 - Guide
- Mettre en veille un programme - Guide
- Programme démarrage windows 10 - Guide
- Forcer la fermeture d'un programme - Guide
1 réponse
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
27 déc. 2015 à 17:57
27 déc. 2015 à 17:57
Bonjour,
Les explications sont toujours nécessaires. Cela nous permet de répondre plus rapidement. Et notamment, il faut a minima nous dire ce qui ne fonctionne pas ou à défaut qu'est-ce qui te fait penser que ça bloque.
Remarque générale : les noms de variables commencent conventionnellement par une minuscule. Donc plutôt motSecret que MotSecret.
CompteNombreLettre(&MotSecret,&NombreDeLettre)
Pas de & devant MotSecret.
fprintf(fichier,*MotSecret);
Attention à l'utilisation de fprintf(). Il faut mettre : fprintf(fichier, "%s", MotSecret); et non (MotSecret directement).
Note : NombreDeLettre2 est inutile. Tu pouvais directement incrémenter NombreDeLettre.
int CompteNombreLettre(char* MotSecret,int* NombreDeLettre)
Ta fonction est censée renvoyer un int. Pourtant tu n'as pas mis de return...
printf("%d",NombreDeLettre);
Il faut mettre un \n à la fin du printf pour forcer l'affichage avant la fin du programme.
int main()
Le bon prototype du main() sans argument est : int main(void)
De plus, il renvoie un int. Il faut donc mettre un return 0; à la fin du programme.
Les explications sont toujours nécessaires. Cela nous permet de répondre plus rapidement. Et notamment, il faut a minima nous dire ce qui ne fonctionne pas ou à défaut qu'est-ce qui te fait penser que ça bloque.
Remarque générale : les noms de variables commencent conventionnellement par une minuscule. Donc plutôt motSecret que MotSecret.
CompteNombreLettre(&MotSecret,&NombreDeLettre)
Pas de & devant MotSecret.
fprintf(fichier,*MotSecret);
- MotSecret ne désigne qu'un char. Si tu souhaites écrire la chaîne entier, il faut mettre : MotSecret (sans l'étoile).
Attention à l'utilisation de fprintf(). Il faut mettre : fprintf(fichier, "%s", MotSecret); et non (MotSecret directement).
Note : NombreDeLettre2 est inutile. Tu pouvais directement incrémenter NombreDeLettre.
int CompteNombreLettre(char* MotSecret,int* NombreDeLettre)
Ta fonction est censée renvoyer un int. Pourtant tu n'as pas mis de return...
printf("%d",NombreDeLettre);
Il faut mettre un \n à la fin du printf pour forcer l'affichage avant la fin du programme.
int main()
Le bon prototype du main() sans argument est : int main(void)
De plus, il renvoie un int. Il faut donc mettre un return 0; à la fin du programme.
27 déc. 2015 à 18:32
L’EXPLICATION DU PROGRAMME :
mon programme en faite est un exercice, j'essaye de réalisé le jeu du pendule (je suis au début du début).
dans la fonction main je crée une chaine de caractère et une variable Nombre.. et j'envois leur adresse a la fonction Compte.. pour modifier la variable est copier la chaîne dans un ficheir pour pouvoir travaillé dessus (je sais qu'il y'a sans doute d'autre facon de faire ca mais je tien a la mien ^^ ) apres je compte le nombre de lettre de la chaine pour faire :
c'est tout :)
j'ai corrigé les erreurs que vous m'avez fait remarqué.mais ca me dit qu'il y'a une erreur
quand j'envois les adresse CompteNombre...(..,&..).
et voici le programme apres modification:
QUESTION:
_dans le cour que je suis on nous dit d’écrire les nom des variable en commencent par une majuscule. (c'est pas vraiment une question en faite :) )
_pourquoi quad je fait &MotSecret c'est faut (j'ai pas fait ca dans le cour). en n'a utilisé les pointeur juste des variable.
merci :)
27 déc. 2015 à 18:38
27 déc. 2015 à 18:48
Remarque supplémentaire : fichier=fopen("MotSecretf","r");
C'est normal d'utiliser un autre fichier ? Le 1er contient .txt, pas le second.
fgetc("fichier");
C'est fichier et pas "fichier".
_pourquoi quad je fait &MotSecret c'est faut (j'ai pas fait ca dans le cour). en n'a utilisé les pointeur juste des variable.
Lorsque tu utilises le tableau MotSecret en paramètre de fonction, il est converti en adresse de pointeur sur le 1er élément du tableau. Autrement dit, MotSecret dans ce contexte est un char*. Il ne faut donc pas mettre d'esperluette devant.
et quand j'ai écrit le même programme en utilisant juste les variable c'est faux ?
Pas compris ta question.
27 déc. 2015 à 19:28
voici le programme:
JE SUIS TELLEMENT CONTENT DE MOI :) .
27 déc. 2015 à 23:22
int main()
C'est int main(void).
Il manque le return 0.
fichier=fopen("MotSecretf","r");
Je remets ma question : est-ce normal que ce soit MotSecretf sans .txt ? (Comme fait lors du 1er fopen())
fgetc("fichier");
C'est fichier et non "fichier".
Note : pourquoi utiliser la variable MotSecret2 ? Inutile.