flux de saisie : fichier ou cin au choix
Je souhaite créer un interpréteur, capable de lire cin ou un fichier, selon un argument de ligne de commande.
Supposons le code suivant
Code:
1 2 3 4 5 6 7 8 9 10
| int main(int argc, char*[] argv) {
//validation des arguments
//sélection du flux
istream input = (argc == 1 ? cin : ifstream(argv[1]));
int x, y;
input >> x >> y;
cout << x << " : "<< y << endl;
} |
Sauf que cela pose plusieurs problèmes: le istream ne devrait pas être copié, et il doit être modifiable.
Cela correspond assez bien à une référence non constante.
Certes, mais comment l'initialiser, sans créer un ifstream si j'utilise cin?