Bonjour,
je suis en train de taper un programme,mais que je veux tester une de ses fonction(en mode console),il plante:Ce programme ne répond pas...
Je suis sous XP professionel
printf("Tapez le texte sans espace (limite 10000 charactere)\net appuyez sur entreepour valider:\n\n");
scanf("%s", texte);
printf("\n\nOu sauver le texte (Chemin du fichier)?\nSi il n'existe pas, il sera creer.\n"); printf("Si il existe, le texte sera mis a la fin du fichier\n");
Il me semble avoir eu le même problème que toi il y a peu de temps. Ton programme bug au moment ou l'utilisateur doit entrer une valeur? (ici "texte" puis "chemin") Si oui, n'oublie pas de mettre le "&" devant, pour indiquer l'adresse à laquelle la valeure doit être enregistrée
je suis en train de taper un programme,mais que je veux tester une de ses fonction(en mode console),il plante:Ce programme ne répond pas...
Pux-tu être plus précis que 'il plante' ? Ce code est incomplet. Comment le testes-tu ? Parce que chez moi, avec un main(), il fonctionne.
Ceci dit, il est dangereux, car il utilise scanf() sans protection. scanf() est une fonction difficile qui n'est pas recommandée aux débutants (et que peu de professionels maitrisent).
Je conseille fgets().
Ce qui résout du même coup le problème de la saisie 'avec espaces'...
Quel est la finalité de ton code ? Si c'est pour faire un 'mini éditeur de texte', c'est un peu léger...
Citation : Phoenix07
Il me semble avoir eu le même problème que toi il y a peu de temps. Ton programme bug au moment ou l'utilisateur doit entrer une valeur? (ici "texte" puis "chemin") Si oui, n'oublie pas de mettre le "&" devant, pour indiquer l'adresse à laquelle la valeure doit être enregistrée
Non. 'chemin' est déjà une adresse... (l'adresse du premier élément du tableau de char nommé 'chemin').
Le morceau de code que je vous ai mis n'est qu'une fonction qui est appellé par une autre fonction qui elle même est apellée par la fonction main.
donc:
void ecrire est fini mais plante
void ecrire appelée par void fichier qui est fini.
main, je le complète au fur et a mesure que j'ecris les fonction.
la fonction fichier peut faire appel a 3 fonction slon le choix de l'utilisateur:
ecrire dans un fichier,
lire un fichier,
suprimer le contenu d'un fichier.
Le morceau de code que je vous ai mis n'est qu'une fonction qui est appellé par une autre fonction qui elle même est apellée par la fonction main.
donc:
void ecrire est fini mais plante
Je ne comprends pas 'plante'. Peux décrire exactement ce qui se passe ?
printf("Tapez le texte sans espace (limite 10000 charactere)\net appuyez sur entreepour valider:\n\n");
scanf("%s", texte);
printf("\n\nOu sauver le texte (Chemin du fichier)?\nSi il n'existe pas, il sera creer.\n"); printf("Si il existe, le texte sera mis a la fin du fichier\n");
Voici une screen shot:
(je l'ai retouré pour qu'elle passe)
</image>
J'ai refait l'essai, le code est correct et ne plante pas. Comme ton code est incomplet, je suppose qu'il y a un autre problème ailleurs, et que cette fonction ne fait que le révéler.
printf("Tapez le texte sans espace (limite 10000 charactere)\net appuyez sur entreepour valider:\n\n");
scanf("%s", texte);
printf("\n\nOu sauver le texte (Chemin du fichier)?\nSi il n'existe pas, il sera creer.\n"); printf("Si il existe, le texte sera mis a la fin du fichier\n");
J'ai réussi a corriger le problème.
En fait, je n'ai rien modifié a la fonction dont je vous est montré le code.
J'ai mis le contenu de la fonction fichier(qui appelai la fonction ecrire) dans la fonction main.
Merci de votre aide(je n'aurais peut-etre pas pu deviner ça et j'aurais abandonné une partie de mon programme).
Plantage
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
If you'd like to join us, read "How do we work at OpenClassrooms"! :)