Bonjour,
pour mon boulot, j'aimerai modifier un programme dont j'ai le code pour l'inclure comme second programme d'un pipeline de six programmes.
A un moment du code, le programme va lire l'input file avec un
Débutant le C++ pour cette cause là, je comprends que getline va traiter ligne par ligne cet input jusqu'à la fin du fichier. Lorsque le programme estimera que le fichier est terminé, la condition
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 getline(input, st); while(getline(input st)){ /*traitement de l'input*/ }ne devrait plus être respectée, ce qui devrait interrompre le traitement de l'input (si j'ai bien compris la logique).
Code : Sélectionner tout - Visualiser dans une fenêtre à part while(getline(input st))
Or, cet input (un tableau de dimensions connues) sera généré progressivement par le premier programme (en amont donc), qui travail plus lentement.
Donc, je pense que ça risque de causer des soucis avec cecar la boucle risque d'interpréter le "front de remplissage" de mon input qui se rempli petit à petit comme étant une EOF.
Code : Sélectionner tout - Visualiser dans une fenêtre à part while(getline()){}
Je pense que la solution serait de remplacer
par
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 getline(input, st); while(getline()){ /*traitement*/ }
J'ai essayé, j'ai compilé avec succés mais en lançant le programme j'ai une erreur de segmentation.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 int rowCount(0), nrow(50); #un cas où l'input aurait 50 lignes getline(input, st); while(rowCount<nrow){ /*traitement*/ rowCount++; }
Est-ce que vous voyez le problème ?
myca
Partager