begin process at 2012 05 30 04:58:35
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Divers

 > 

Utiliser une variable en dehors d'un boucle !!


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

Utiliser une variable en dehors d'un boucle !!

mardi 8 mars 2005 à 22:38:12 | Utiliser une variable en dehors d'un boucle !!

chanandler

Bonjour ! Mon probléme est le suivant : J'ai un programme qui lit un fichier LieuDate1.txt (fichier donc le comptenu peut varier mais pas la forme )et ce programme prend différent champ de ce fichier pour le cpier dans un autre fichier2.txt et pour faire cela j'utiliser une boucle do while() mais dans mon code j'aurais besoin de récuperer en dehors de la boucle ce que contiene mais different variable comme MaxdB,Heure... donc j'aimerais savoir si il est possible de récuperer le comptenu d'un variable en dehors d'un boucle, si pouvait m'indiquer comment.
Merci beaucoup de votre aide !!


Mon code si dessous :

#include <fstream>
#include <iostream>
#include <fcntl.h>
#include <string>
using namespace std;

void main(void)
{

    char IdentifiantLigne[40]={'*'};

    char Heure[20]; //Sert pour récuperer l'heure dans le fichier LieuDate1.txt ( cette heure est sous forme de colonne dans ce fichier)

    char MaxdB[20];//Sert pour récuperer des lesures de dB dans le fichier LieuDate1.txt ( cette mesure est sous forme de colonne dans ce fichier)

    char TempsDeDepassement[20];//Sert pour récuperer le temps de dépassement dans le fichier LieuDate1.txt ( ce temps de dépassement est sous forme de colonne dans ce fichier)

    ifstream fin;
    ofstream fout;
    
   // le constructeur de ifstream permet d'ouvrir un fichier en lecture

    fin.open( "Lieu1Date1.txt", ios::in );
    fout.open("fichier2.txt", ios::out);
    if(!fout) {cout<<"erreur";exit(-1);};


//Boucle de récuperation de different champ du fichier LieuDate1.txt
  do
{
    fin>>IdentifiantLigne;
    switch(IdentifiantLigne[1])
    {

    case 'E':
            fin>>Heure>>MaxdB>>TempsDeDepassement;
            fout<<MaxdB<<",";
            break;

    }

}while(IdentifiantLigne[0]!='*');






mercredi 9 mars 2005 à 13:46:48 | Re : Utiliser une variable en dehors d'un boucle !!

Vulpetrus

Excuses-moi, mais je ne vois pas ce qui te gène, rien ne t'empèche de récuperer le contenu de tes variables en dehors de la boucle à partir du moment où tu reste dans la même fonction.
Par contre si tu veux les récuperer quand tu es dans une autre fonction, c'est autre chose.
Tu dois alors avoir recours soit au pointeur, soit au variable globale, ou alors passation d'arguments...
Eclaires-moi un peu plus sur ton problème si tu n'est pas satisfait de ma réponse.
mercredi 9 mars 2005 à 13:46:52 | Re : Utiliser une variable en dehors d'un boucle !!

Vulpetrus

Excuses-moi, mais je ne vois pas ce qui te gène, rien ne t'empèche de récuperer le contenu de tes variables en dehors de la boucle à partir du moment où tu reste dans la même fonction.
Par contre si tu veux les récuperer quand tu es dans une autre fonction, c'est autre chose.
Tu dois alors avoir recours soit au pointeur, soit au variable globale, ou alors passation d'arguments...
Eclaires-moi un peu plus sur ton problème si tu n'es pas satisfait de ma réponse.
mercredi 9 mars 2005 à 15:14:04 | Re : Utiliser une variable en dehors d'un boucle !!

chanandler

Bas en faite c'est en dehors de la boucle while que je vais récuperer les variables et c'est la que ca bloque, si tu as une méthode a m'expliquer je suis preneur !! Merci beaucoup
mercredi 9 mars 2005 à 15:43:26 | Re : Utiliser une variable en dehors d'un boucle !!

Vulpetrus

D'abord : comme je l'ai déja dit rien ne t'empèche de récuperer le contenu de tes variables en dehors de la boucle while.
Donc si comme tu dis ça bloque, ton problème viens d'ailleurs !
Je n'ai pas tout ton programme, mais est ce que tu es sur que tu sors de ta boucle ?
while(IdentifiantLigne[0]!='*') vu que fin>>IdentifiantLigne; est ce que ta condition change ?

a+
mercredi 9 mars 2005 à 15:49:29 | Re : Utiliser une variable en dehors d'un boucle !!

chanandler

Oui je sors bien de la boucle mais quand disons aprés etre sorti de la boucle  while(IdentifiantLigne[0]!='*') je met ma variable MaxdB par exemple et que je fais un cout<<MadB; bas le probléme c'est que je n'es qu'une valeur docn l'effet de la boucle n'est plus la car elle permet de récuperer plusieurs valeur. voila merci !
mercredi 9 mars 2005 à 16:03:44 | Re : Utiliser une variable en dehors d'un boucle !!

Vulpetrus

ah ok !
mais ton MaxdB[20] est une chaine unique :
Avec ta manière de faire tu écrases l'ancienne valeur de MaxdB à chaque itération, utilise un tableau :  tu dois enregistrer dans MaxDB[i] et non dans MaxDB

créer un tableau de k chaines de 20 caractères : char MaxdB[k][20];
tu changes ton indice i à chaque itération de ta boucle !
vérifie que k soit suffisamment grand


i=0;
do
{
    fin>>IdentifiantLigne;
    switch(IdentifiantLigne[1])
    {

    case 'E':
            fin>>Heure>>MaxdB[i]>>TempsDeDepassement;
            fout<<MaxdB[i]<<",";
            break;

    }
i++;

}while(IdentifiantLigne[0]!='*');

Est ce que ça ira ?
++
mercredi 9 mars 2005 à 16:43:22 | Re : Utiliser une variable en dehors d'un boucle !!

chanandler

Le fout<<MaxdB[i]<<","; est la juste que j'avais fais des essaies et a cette endroit ca marché mais si je fais donc ta méthode et donc j'enleve cette ligne fout<<MaxdB[i]<<","; pour la mettre apres le }while(IdentifiantLigne[0]!='*'); et en mettant un cout a la place de fout ca ne marche pas car je n'es pas de valeur a la place j'ai une ranger de signe comme celui si "|" et une valeur a la fin si tu as une idée merci d'avance.

int i=0;
do
{
    fin>>IdentifiantLigne;
    switch(IdentifiantLigne[1])
    {

    case 'E':
            fin>>Heure>>MaxdB[i]>>TempsDeDepassement;
            break;

    }
i++;

}while(IdentifiantLigne[0]!='*');
 cout<<MaxdB[i]<<",";
mercredi 9 mars 2005 à 16:52:45 | Re : Utiliser une variable en dehors d'un boucle !!

Vulpetrus

c'est l'affichage de la fin qui plante :
fo faire :

int i=0;
do
{
    fin>>IdentifiantLigne;
    switch(IdentifiantLigne[1])
    {

    case 'E':
            fin>>Heure>>MaxdB[i]>>TempsDeDepassement;
            break;

    }
i++;

}while(IdentifiantLigne[0]!='*');

for(int i=0;i<k;i++)
cout<<MaxdB[i]<<",";
mercredi 9 mars 2005 à 17:19:48 | Re : Utiliser une variable en dehors d'un boucle !!

chanandler

Bon jai fais ton truc en remplacant K par la valeur de mon tableau mais maintenant ca rempli tous le carré de petit trait et j'ai essayé aussi de mettre j ici for(int j=0;j<k;j++) cout<<MaxdB[i]<<","; mais ca n'a rien changer. Encore merci de m'aider.

1 2 3 4 5 6 7

Cette discussion est classée dans : fichier, boucle, txt, récuperer, lieudate1


Répondre à ce message

Sujets en rapport avec ce message

Probléme de boucle !! [ par chanandler ] Bonjour ! Mon probléme est le suivant : J'ai un programme qui lit un fichier LieuDate1.txt (fichier donc le comptenu peut varier mais pas la forme )et aide pour création forcée d'un fichier txt (et écriture)... [ par scelw ] De la même façon que pour "forcer" l'affichage d'un printf() ou d'un cout << "texte_à_afficher", il faut utiliser un "flush" (cout << "texte_à_affiche boucle fopen [ par vercd7am ] Bonjour, j'aurai aime savoir comment faire un boucle de fopen. Voila pour l'instant ce que j'ai [code=cpp]FILE* fichier = NULL; // nombre de points recuperer le contenu d'un CEdit en fichier .txt [ par manyyy67 ] Bonjour, Je debute en c++, je suis charger des faire quelque ameliorations sur un (gros) programme professionel en c++(le IE est visual C++ 6 et le pr fichier et tiste simplement chainee en c [ par IMFM ] Salut, j'aimereis avoir une idee svp sur ce point. j'ai besoin de creer un fichier de transaction_date.txt où "date" est la date du jour. les transact Récuperer le chemin complet d'un fichier avec OpenFileDialog en C++.Net [ par johnASP ] Bonjour, Je travail sous Visual Studio v.2005. Je voudrais, aprés l'ajout d'un fichier via la fonction "openFileDialog", récupérer le chemin d'accés Modification virgule fichier .txt [ par necromoine ] Bonjour, je souhaite faire un code qui permet de mettre un retour à la ligne apres chaque virgule d'un fichier texte, qui ressemblerait à : Contenu t efstream, impossibilité d'écrire dans un fichier .txt [ par LaGrandeBete06 ] Bonjour à tous, Je viens de me mettre au C++ et je dois créer et ouvrir un fichier .txt avec une methode, puis j'appelle une autre methode pour écrir détection dans un fichier txt [ par johnASP ] Bonjour à tous! J'aurais voulu savoir comment faire pour tester si une ligne d'un fichier txt commence par une chaine de caractére spécial (ex: si la C dup utilisation [ par Tom59247 ] Bonjour à tous ! Je réalise actuellement un petit programme qui me permet de mettre quelques infos dans un fichier txt. Après quelques recherches j'


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
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 : 0,671 sec (4)

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