while getline segmentation
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
Code:
1 2 3 4 5
|
getline(input, st);
while(getline(input st)){
/*traitement de l'input*/
} |
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:
while(getline(input st))
ne devrait plus être respectée, ce qui devrait interrompre le traitement de l'input (si j'ai bien compris la logique).
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 ce car la boucle risque d'interpréter le "front de remplissage" de mon input qui se rempli petit à petit comme étant une EOF.
Je pense que la solution serait de remplacer
Code:
1 2 3 4
| getline(input, st);
while(getline()){
/*traitement*/
} |
par
Code:
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++;
} |
J'ai essayé, j'ai compilé avec succés mais en lançant le programme j'ai une erreur de segmentation.
Est-ce que vous voyez le problème ?
myca