Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Gets [ Divers / Débutant(e) ] (Titiii25)

vendredi 19 septembre 2008 à 18:09:24 | Gets

Titiii25

Bonjour,
Etant étudiant notre prof nous a demandé de créer un programme qui doit dire le plus grand mot d'une chaine de caractère saisie avec gets. Le seul problème c'est que quand je met :
 gets(TabCar);
    cout << " La phrase est  : ";
    while(*TabCar!= '\0')
    {
                cout<<TabCar;
    }
Il met met des millions de fois la chaine saisie bien sur sans s'arreter ... C'est peu-etre une question bete mais je ne trouve pas de réponse concrete avec la fonction que je connais très peu et comme la prof nous .
Voici tout mon programme au cas ou cela serait-utile :
#include <iostream>
#include <iomanip>
#include <conio.h>
#include <math.h>
#include <string.h>
using namespace std ;

void extraire(int position, char Mot[30],int &CpteurCar, char TabCar[30])
{
     int j,x;
     j=0;
     x=position-CpteurCar;
     while(j!=position)
     {
                        Mot[j]=TabCar[x];
                        j++;
                        x++;
     }
}

void compter(char TabCar[30], char Mot[30])
{
     int CpteurCar,PlusGrand,i,position;
     i=0;
     PlusGrand=0;
     while(i<=30)
     {
                 CpteurCar=0;
                 while(TabCar[i]!=' ')
                 {
                                     CpteurCar=CpteurCar+1;
                                     i=i+1;
                 }
                 if(CpteurCar>PlusGrand)
                 {
                                        PlusGrand=CpteurCar;
                                        position=i;
                 }
                 i=i+1;
                 i=i+1;
               
     }
     cout << " Le mot le plus grand fait " << PlusGrand << " lettre(s) ";
     extraire(position,Mot,CpteurCar,TabCar);
}


int main()
{
    char *TabCar;
    TabCar=new char;
    char Mot[30];
    int i,CpteurCar;
    i=0;
    cout << " .: Le Mot Le Plus Long :. \n\n\n\n" ;
    cout << " Veuillez saisir une chaine de caracteres (maximun 30 caracteres): \n\n" ;
    gets(TabCar);
    cout << " La phrase est  : ";
    while(*TabCar!= '\0')
    {
                cout<<TabCar;
    }
    cout << " \n\n ";
    system("pause");
    compter(TabCar,Mot);
    cout << "\n\n Le mot le plus long est : " ;
    while(i<=30)
    {
                       cout << Mot[i];
                       i++;
    }
    cout << "\n\n\n\n .: Fin du programme :. " ;
    getch();
    return(0);
   
}

Merci de vos réponses.

Titiii25


dimanche 21 septembre 2008 à 00:53:45 | Re : Gets

ciberrique

Je pense que le probleme vient de la façon dont tu affiches ta chaine de caractere :

while(*TabCar!= '\0')
    {
                cout<<TabCar;
    }

Si tu veux absolument une boucle tu peux faire ca :

while(i < 30 && TabCar[i]!= '\0')
    {
                cout<<TabCar[i];
                i++;
    }

Sinon au plus simple : cout << TabCar;

J'ajouterai n'utilise pas gets car elle permet le buffer overflow ce qui est dangereux utilise plutot fget(TabCar,30,stdin);
Et aussi quand tu fais TabCar = new char; tu dimensionnes un tableau de un caractere donc plutot TabCar = new char[30]; qui dimensionne un tableau de 30 char de 0 à 29.

J'espere avoir était assez clair et ne pas avoir dis de sotise.


www.e-fitz.com
Encore plus de source et de tutoriels.




Cette discussion est classé dans : mot, char, cout, tabcar, cpteurcar


Répondre à ce message

Sujets en rapport avec ce message

Dans le genre prenant........ [ par Xs ] oui !c 'est trés chiant !j'explique mon pb : j'ai un code source, fais par moi-meme, et dedans, je veux que l'on saisisse des renseignement comme le l Ecriture/lecture dans un fichier [ par SneakGuy ] Haaa... Merci, sa m'a aider... Enfin, j'ai encore plusieurs problemes...pour l'ecriture j'ai quelque chose qui ressemble a sa:char user[20];char pass[ ça concerne la lecture et l'ecriture sur un fichier et ... [ par wfish ] voila mon pb :j'ai fais un ptit prog de traitement de fichier. il sert à mettre certaines infos prises dans un fichier et les mettre dans un autre !!1 conversion char-->hexadécimal [ par ivdz ] Bonjour,Est-ce que quelqu'un sait convertir un char en sa valeur hexadécimal ?Voici ce que j'ai essayé :char mot[]="255";int hexa;sscanf(mot Visual C++ Free() [ par PRZYBYLSKI ] #include #include #include "stdafx.h"Question au Pro?Qu'es qui est faux docteurArrivé à free ça bombe#include <io j'ai commencé un sof mais je bloque ! :( [ par xionoxid ] Voilà quand je demande rentré le pass si il met "a" alors ça devrait faire login = rien; mais le probleme c'est que meme si je met a et ça fait PAS lo Hachage fermé problème de lecture [ par mcflysupersonic ] Bonjour je suis nouveau sur le forum est ceci est ma première question donc j'espère que je ne me suis pas trompé d'endroit pour poster.Voilà j'ai un pb eof en C++ le dernier element est lu 2 fois :( [ par panini21 ] salut a tousvoila g un prog qui permet de creer une 'bibliotheque de jeux'a savoir :les renseignement du jeu sont le prix, le nom, la descriptiopn et Fatal signal: Segmentation Fault (SDL Parachute Deployed) [ par broks ] Je ne comprends vraiment pas pourkoa ca ne marche pas...C'est surement un probleme au niveau de la fonction saisi puisque je plante lorsque je dois sa probleme sur une classe [ par NerOcrO ] Voici mon code :#include #include class Chanson //classe Chanson{ public: int Duree; char TypeDeFichier[3], Auteur[50], Titre[50], Interprete[50


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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
Temps d'éxécution de la page : 0,234 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.