begin process at 2012 02 12 07:13:26
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Débutant(e)

 > 

Gets


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Gets

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ée 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

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,747 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales