Bonjour,
Voici le code :
J'appelle le programme tel que : john --incremental --stdout | ./programme.Code:
1
2
3
4
5
6
7
8
9 string ligne; while ( ! getline(cin, ligne).eof() ) { // Traitement de ligne //(...) if ( condition ) { break; } }
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 :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.Code:zsh: broken pipe john --incremental --stdout |
J'ai essayé avec un booléen mais ça ne change rien :
Merci d'avance pour vos réponses.Code:
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; } }