Bonjour,
Voici le code :
1 2 3 4 5 6 7 8 9
| string ligne;
while ( ! getline(cin, ligne).eof() ) {
// Traitement de ligne
//(...)
if ( condition ) {
break;
}
} |
J'appelle le programme tel que : john --incremental --stdout | ./programme.
Le but étant de traiter un liste de mots (ici j'utilise john comme j'aurai pu utiliser seq, cat, crunch ou autre).
Mais je peux arrêter le traitement en cours si certaines conditions sont valides, ce qui fait que le premier programme (john --incremental --stdout) s'arrête avec une erreur du type :
zsh: broken pipe john --incremental --stdout |
Y a t-il un moyen d'outrepasser cette erreur ? Ou peut être de faire une sorte de cin.close() ou quelque chose pour lui dire d'arrêter de lire depuis std::cin sans erreur.
J'ai essayé avec un booléen mais ça ne change rien :
1 2 3 4 5 6 7 8 9 10
| string ligne;
bool stop = false;
while ( ! getline(cin, ligne).eof() && ! stop ) {
// Traitement de ligne
//(...)
if ( condition ) {
stop = true;
}
} |
Merci d'avance pour vos réponses.
Partager