IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Problem de boucle.....


Sujet :

C++

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 22
    Points : 16
    Points
    16
    Par défaut Problem de boucle.....
    Bon voila je debute dans le C++....avant j'ai fait du basique.

    Bon voila mon second code et ce que je voudrais faire c'est que afichier seulement si countt et superieur a lcoutt..le tout dans un wile.
    Et mon problem c'est que ca tourne en boucle...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    #include <stdio.h>
    #include <fstream>
    #include <string>
    #include <iostream>
     
    using namespace std;
     
    void main ()
    {
    //variable	
    	int countt = 0;
    	int lcountt = 0;
    	int boucle = 0;
    	int test = 0;
     
    //definition
    	while ( boucle = 1)
    	{
    		ifstream file( "chat.txt" );
     
    // compter le nombre de lignes
     
    		string line;
    		while ( getline( file, line ) )
    		{
    		    ++countt;
    		}
     
    //affichage
     
    		if (countt > lcountt)
    		{
    			//lecture du fichier
    			// le constructeur de ifstream permet d'ouvrir un fichier en lecture
    		    std::ifstream fichier_read( "chat.txt" );
     
    			if ( fichier_read ) // ce test échoue si le fichier n'est pas ouvert
    			{
    			    std::string ligne; // variable contenant chaque ligne lue
     
    	// cette boucle s'arrête dès qu'une erreur de lecture survient
    		       while ( std::getline( fichier_read, ligne ) )
    			    {
    	// afficher la ligne à l'écran
    		            std::cout << ligne << std::endl;
    		        }
    			}
    		}
    	printf ("%d \n",countt);
    	lcountt = countt;
    	printf ("%d \n",countt);
    	printf ("%d \n",lcountt);
    	scanf ("%d \n", test);
    	}
     
    }
    bref je pige pas......

  2. #2
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut
    bonjour

    je n'ai parcouru que le début du code et j'ai déjà repéré 2 erreurs (dont une dans un while)

    en-tête C++
    comparaison ==
    affectation =
    EDIT :

    toujours avec une lecture en biais ( je suis un peu pressé c'est pour ça) : std:: inutile puisque tu as déjà mis using "namespace std", c'est pas top de mélanger entrées/sorties C++ et C (mélanger flux <<, >>, avec du printf/scanf). on peut utiliser du C dans un programme C++, mais il faut rester cohérent. si tu choisis un système d'I/O, je pense qu'il vaut mieux garder le même tout du long.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 22
    Points : 16
    Points
    16
    Par défaut
    Hum bon ben merci pour les 2 corection .......et heu ben j'aprend donc je prend un peus a droite et a gauche et donc je melange beaucoup de chose......

    donc si je comprend bien pour respecter le C je vire les std:: et pour repsecter le C++ je vire la declaration std au debut....

  4. #4
    Membre averti
    Avatar de bigquick
    Profil pro
    Inscrit en
    Août 2002
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 356
    Points : 353
    Points
    353
    Par défaut
    Salut !

    Non non ca n'a pas de rapport
    "std" c'est pur utiliser les standards C++ (streams, containers, ...)
    Donc soit tu préfixe tous ceux-ci par std
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    std::string  test = "truc";
    std::cout << test << std::endl
    soit tu dis dès le début que tu utilises le namespace std:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    using namespace std;
    string test = "truc";
    cout << test << endl;
    Pour ce qui est du C / C++, bigboomshakala parlait de la gestion des entrées sorties : tu mélanges scanf (du C) avec des flux << ou >> (du C++). Il vaut mieux être cohérent, et utiliser tout l'un ou tout l'autre ...

    Voilà
    Regarde dans la FAQ C++ si tu veux tout plein d'explications sur les flux C++ (pour lire des fichiers, lire des entreés clavier, etc ...)

    Bonne continuation

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 22
    Points : 16
    Points
    16
    Par défaut
    Ok merci donc c'etait de la redondance...
    le scanf et juste la pour creer une pause dans la boucle....
    c'est tout et il disparetra a la fin (quand j'aurais resolu mon problem)
    Je ne comprend toujours pas pourquoi ca affiche en boucle alors que si je comprend bien mon code ca ne doit s'afichier que si countt est plus grand que lcount ?

    C'est bien ca mon code ou je me trompe.....

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 31
    Points : 34
    Points
    34
    Par défaut
    Dans ton while, tu teste la variable boucle (du moins si on corrige l'erreur d'affectation) mais tu ne changes jamais sa valeur à l'intérieur de la boucle. Donc ton test vaut toujours la même chose.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 22
    Points : 16
    Points
    16
    Par défaut
    Oui je sais non je me suis planté dans mon presdent message......
    je voulais dire PK sa affiche en boucle

    EDIT resolu je ne met pas a zero mon countt......
    merci de votre aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VBA-E] probleme de boucle
    Par Elstak dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/03/2006, 17h11
  2. Probleme de boucle a s arracher les cheuveux
    Par calimero642 dans le forum Langage
    Réponses: 6
    Dernier message: 16/03/2006, 14h44
  3. Probleme de boucle avec des processus sous UNIX
    Par sebastieng dans le forum POSIX
    Réponses: 6
    Dernier message: 15/10/2005, 18h57
  4. [Language]Problème de boucle
    Par marc_dd dans le forum Langage
    Réponses: 11
    Dernier message: 06/10/2005, 14h24
  5. [C#] Probleme de boucle for et random
    Par Freeman166 dans le forum Windows Forms
    Réponses: 7
    Dernier message: 09/01/2005, 14h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo