3 votes

ifstream avec caractères génériques

Est-ce que ifstream supporte quelque chose comme :

ifstream myfile;
myfile.open("/home/Desktop/*.txt*");

J'essaie d'effectuer une opération similaire et j'obtiens "cann't open file". Si je fais vim /home/Desktop/*.txt J'ouvre le seul fichier appelé help.txt1 mais, pour une raison quelconque, je ne peux pas l'ouvrir en utilisant ifstream.

3voto

La réponse courte est "non". La réponse longue est "non, il ne le fait pas".

P.S. Regardez la page glob pour obtenir la liste des fichiers et les traiter un par un.

0voto

bonsaiviking Points 1993

La fonctionnalité de correspondance des caractères génériques des noms de fichiers est appelée "globbing" (globalisation) . Vous devez utiliser glob(3) pour obtenir une liste de fichiers, puis ouvrez chacun d'entre eux à tour de rôle.

0voto

aschepler Points 23731

En effet, l'interpréteur de commandes interprète la commande que vous avez saisie comme suit vim /home/Desktop/*.txt . Il recherche les fichiers correspondant au motif et en transmet la liste dans les arguments de commande de la commande vim exécutable.

Pour effectuer des opérations similaires à partir de C++ sous Unix, consultez la page de manuel glob fonction.

0voto

evanmcdonnal Points 11407

ifstream ne prend pas en charge les caractères génériques. Vous devrez récupérer tous les fichiers en utilisant DIR ou quelque chose du genre, puis mettre tout ce qui contient .txt dans une liste ou un tableau et faire une boucle en appelant fopen sur chacun d'entre eux.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X