C'est très pratique quand tu veux faire des binaires qui agissent sur une sortie.
Je te donne un exemple tout bête: Tu veux réaliser un programme qui lorsque tu lui donnes une sortie, numérote les lignes.
Voici le programme:
catline.cc
Code C/C++ :
include <iostream>
int main()
{
std::string line;
int nb = 0;
while (std::getline(std::cin, line))
std::cout << ++nb << ": " << line << std::endl;
return 0;
}
Compilé avec:
g++ -W -Wall -Wabi -pedantic catline.cc -o catline
Maintenant si je lance ce binaire, et que j'écris des choses (CTRL + D pour arrêter), alors ça ajoute un "1: " devant.
Pas très utile.
Mais pour une sortie, ça peut l'être:
Exemple:
Tu dois connaitre la commande "cat" qui permet d'afficher sur le terminal le contenu d'un fichier.
Si je chaîne cat et mon exécutable, alors je peux numéroter toutes les lignes de la sortie précédentes.
Exemple:
cat catline.cc | ./catline
Me renverra:
1: #include <iostream>
2:
3: int main()
4: {
5: std::string line;
6: int nb = 0;
7:
8: while (std::getline(std::cin, line))
9: std::cout << ++nb << ": " << line << std::endl;
10:
11: return 0;
12: }
Voilà, tu vois ça peut servir !
(PS: A noter que cette fonction existe déjà, c'est "cat -n")