Flux rss
Rechercher : dans
Par : Mots clés Nom d'utilisateur
Messages sans réponse

Langage c comment fonction gets??

yoda, le vendredi 3 décembre 2004 à 13:48:58 
 Signaler ce message aux modérateurs

Salut a ts

je crois que la reponse sera simple mais c'est un probleme pour la quel j ai passer plus 1 heure je vais devenir fou!!
{
char *tmp=NULL;
tmp=(char*) malloc(sizeof(char)*300);
memset(tmp, '\0', sizeof(char));

printf("taper la correction\n");
gets(tmp);
n=strlen(tmp);
printf("\n n vaut %d",n);
printf("\n tmp vaut %s",tmp);
}
et la quand je l execute, apres l'affichage du printf("taper la correction\n"); , il affiche directement n vaut zero et ensuite il bug.
le gets se met en marche sans que je puisse taper quelque chose?

d'ou vien le probleme, aidez moi svp!!

merci

1

Ravachol, le vendredi 3 décembre 2004 à 14:33:05

Salut,
Je ne vois pas la déclaration de n dans le code que tu as posté.

A++

C'est pas parce qu'ils sont nombreux à avoir tort
qu'ils ont raison! (COLUCHE)

Répondre à Ravachol

2

yoda, le vendredi 3 décembre 2004 à 15:26:14

Pardon , il y est normalement ds la vraie version, a vrai dire la vraie version est un peu plus complexe mais je suis ur que le probleme vien des ces ligne

Répondre à yoda

3

Guki, le vendredi 3 décembre 2004 à 15:57:12

Salut!

N'oublie pas de vider le flux d'entrée stdin si tu appliques une boucle sur gets.

Répondre à Guki

4

Ravachol, le vendredi 3 décembre 2004 à 16:00:31

Je viens de copier ton code et chez moi ça passe sans pb après avoir ajouté la déclaration de n.

A++

C'est pas parce qu'ils sont nombreux à avoir tort
qu'ils ont raison! (COLUCHE)

Répondre à Ravachol

5

yoda, le vendredi 3 décembre 2004 à 20:47:56

"de vider le flux d'entrée stdin si tu appliques une boucle sur gets"

voila qui a l aire interessant mais je comprend pas se que tu a dis, sa veut dire quoi ou du moin comment je fait???

j ai l impression que gets lit ce qui a dans un buffer et que le mien est deja rempli, du coup il gets autre chose!! donc je croi que je doi vider quelque chose mais comment??
(fflush???)

c'est ca que tu a voulu dire non??!!??

Répondre à yoda

6

Guki, le samedi 4 décembre 2004 à 13:14:58

fflush(stdin);


;-)

Répondre à Guki

7

lolosynytariny, le lundi 8 octobre 2007 à 17:03:50

Bonjour,
je fai une programmation mai c ne marche po

#include <string.h>
#include <stdio.h>

typedef enum{Printemps,Ete,Automne,Hiver}Saison;
typedef enum{janvier, fevrier, mars, avril, mai, juin, juillet, aout, septembre, octobre, novembre, decembre}Mois;

int main(void){
Saison s;
Mois m;
char moi[10];
printf("Introduire un mois:");
gets(moi);
printf("");

if ( (moi=="janvier")|| (moi=="JANVIER") ) m=janvier;
if ( (moi=="fevrier") ||(moi=="FEVRIER") ) m=fevrier;
if ( (moi=="mars")|| (moi=="MARS") ) m=mars;
if ( (moi=="avril")|| (moi=="AVRIL") ) m=avril;
if ( (moi=="mai")|| (moi=="MAI") ) m=mai;
if ( (moi=="juin") ||(moi=="JUIN") ) m=juin;
if ( (moi=="JUILLET")|| (moi=="juillet") ) m=juillet;
if ( (moi=="aout")||(moi=="AOUT") ) m=aout;
if ( (moi=="SEPTEMBRE")|| (moi=="septembre") )m=septembre;
if ( (moi=="octobre")|| (moi=="OCTOBRE") ) m=octobre;
if ( (moi=="NOVEMBRE")|| (moi=="novembre") ) m=novembre;
if ( (moi=="decembre")|| (moi=="DECEMBRE") ) m=decembre;

else printf("ERREUR");

switch(m){

case janvier :
case fevrier :
case mars : printf("c'est la saison d'hiver");break;
case avril :
case mai :
case juin :printf("c'est la saison du printemps");break;
case juillet:
case aout :
case septembre: printf("c'est la saison d'été");break;
case octobre :
case novembre :
case decembre:printf("c'est la saison d'automne");
}
return ;
}

Répondre à lolosynytariny

11

skay, le mardi 29 avril 2008 à 19:11:44

En C le switch case ne fonctionne pas avec des char, le test ne s'effectue que sur un entier il me semble...

Répondre à skay

12

lami20j, le mardi 29 avril 2008 à 22:40:08
  • +3

Salut,

pour l'info

On peut utliser :
- les entiers
- les caractères
- les énumérations

Dans son cas il s'agit d'une énumération 106485010510997108

Répondre à lami20j

8

cm-t, le lundi 26 novembre 2007 à 15:51:17

Peu etre essay de mettre des break; a chaque nouvelles saison dans ton switch

Répondre à cm-t

9

cm-t, le lundi 26 novembre 2007 à 16:01:33

Oué euh, en fait oubli ça.
-_-t

Répondre à cm-t

10

Sans pseudo, le lundi 28 janvier 2008 à 18:34:45

Essaye de mettre des "struct" entre "typedef" et "ennum"

Répondre à Sans pseudo

13

 xax, le vendredi 21 novembre 2008 à 11:17:13

On vous a jamais expliquer qu'ils faut jamais utilisé gets ca provoque des buffer overflow !!!
essayer de mettre une chaine de caractère plus longue que l'espace alouer, il va pas aimer du tout ca votre programme (en plus l'espace alouer n'est pas forcement vide car tu utilise malloc du coup du peut avoir des caracère bizzard dans ton chaine entrée)

Répondre à xax
Langage C - Les variables Le concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage C sont typées, c'est-à-dire que les données contenues dans... www.commentcamarche.net/contents/c/cvar.php3
Couleur des texte en langage c (Résolu) Bonjours à tous, Je programme déjà depuis un petit temps en langage c. Seulement j'ai un petit problème, j'aimerais savoir quelle est l'instruction pour changer la couleur d'un texte mais je ne trouve pas de tutoriel. Si quelqu'un pouvait m'aider sa... www.commentcamarche.net/forum/affich-2622033-couleur-des-texte-en-langage-c
Langage C / Fonction récursive (Résolu) Bonjour à tous, J'ai un petit ennui avec une fonction récursive. Celle-ci fait appel à elle même un certain nombre de fois et doit s'arrêter lorsque certaines conditions sont vérifiées. Et pour arrêter l'exécution d'une fonction, je ne connais que 2... www.commentcamarche.net/forum/affich-185888-langage-c-fonction-recursive
Les files en langage CLes files - Premier Entré Premier Sorti Requis I. INTRODUCTION II. Définition III. La construction du prototype d'un élément de la file IV. Opérations sur les files A. Initialisation B. Insertion d'un élément dans la file C. Oter un... www.commentcamarche.net/faq/sujet-8282-les-files-en-langage-c
Les piles en langage CLes piles Requis I. INTRODUCTION II. Définition III. La construction du prototype d'un élément de la pile IV. Opérations sur les piles A. Initialisation B. Insertion d'un élément dans la pile C. Ôter un élément de la pile D. Affichage... www.commentcamarche.net/faq/sujet-8283-les-piles-en-langage-c
Date et heure langage CSalut, Dans mon projet, j'ai besoin de l'heure et la date, je n arrive pas a code ceci en langage C, si qqn pourrai m aider; Merci d'avance . www.commentcamarche.net/forum/affich-4526939-date-et-heure-langage-c
Petit programme en langage C (Résolu)Bonjour, Etantdonné débutant en langage C, permettez moi S.V.P de vous adresser mon petit probléme que je n'arrive à comprendre la réponse: l'ennoncé de l'exercie: Écrire une fonction qui ne renvoie aucune valeur et qui détermine la valeur maximale et... www.commentcamarche.net/forum/affich-2811312-petit-programme-en-langage-c
Cosinus sans maths.h en langage C (Résolu)Bonjour, j'apprend le langage c et je voudrais savoir comment fair un programme qui calcul cosinus(x) grace aux programmes secondaires factorielle et puissance avec cette formule : cos(x)= 1-x²/2! + x^4/4! - x^6/6!... ou encor avec mes fonctions... www.commentcamarche.net/forum/affich-9373545-cosinus-sans-maths-h-en-langage-c
Langage C++ - Les pointeursComme en langage C, le langage C++ permet d'utiliser des pointeurs pour manipuler des données, mais il introduit aussi le concept de référence, très pratique pour permettre la modification d'une donnée passée en paramètre d'une fonction. Définition... www.commentcamarche.net/contents/cpp/cpppoint.php3
Langage C - Les types de donnéesLes types de données Les données manipulées en langage C sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître l'occupation mémoire (le... www.commentcamarche.net/contents/c/ctype.php3
Langage C - Les chaînes de caractèresQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C, une chaîne... www.commentcamarche.net/contents/c/cstring.php3