[C++] Ouvrir un fichier en donnant le chemin + parcours par caractère

Tamahoma Messages postés 3 Date d'inscription vendredi 7 janvier 2005 Statut Membre Dernière intervention 1 juillet 2005 - 1 juil. 2005 à 12:19
jcqguill Messages postés 17 Date d'inscription vendredi 29 octobre 2004 Statut Membre Dernière intervention 19 août 2007 - 1 juil. 2005 à 18:39
Bonjour,

je voudrais savoir comment ouvrir un fichier en donnant son chemin
j'ai testé comme ceci :

string chemin;
cout << "saisir le chemin du fichier a ouvrir : ";
cin >> chemin;


std::ifstream file(chemin);

ça ne marche pas, et je dois ouvrir n'importe quel fichier pour y accéder, je suis obligé de mettre : std::ifstream file(monfichier.html);
Je ne voudrais pas utilisé fopen, si une solution est possible.

Je voudrais ensuite savoir, si il existe une fonction qui peut parcourir le fichier caractère par caractère et il s'arrête au moment ou il rencontre "<" (Je suis en train d'essayer de coder un parser HTML et chui mal barré =/ ), ou une fonction dont on donne un mot en valeur et qu'il le cherche.

j'ai au début testé de cette façon pour trouver une balise :

std::ifstream file(monfichier.html);
std::string word;
if (!file)
cout<<"Erreur, le fichier n'a pas ete trouve"<<endl;
else
{
while(file >> word)
{
if (word[0]=='<')std::cout << word << '\n';
}
}

Mais je me suis rendu compte que prendre les mots commençant par "<" n'est pas tout à fait correct car jme retrouve avec <td> !!! MERCI

4 réponses

Tamahoma Messages postés 3 Date d'inscription vendredi 7 janvier 2005 Statut Membre Dernière intervention 1 juillet 2005
1 juil. 2005 à 12:25
AH mince on ne peut pas éditer le message !

jvoulais ajouter que j'ai déja passer du temps à chercher et si jposte c'est pasque j'ai rien trouvé arf !

sinon jvoulais aussi demander avez vous une idée d'une classe de base et d'une classe de dérivée au moins à créer? je suis obligé d'utiliser l'héritage, on m'a conseillé analysuer lexical et syntaxique, mais jvoulais avoir d'autres avis !
voilà merci d'avance
0
jcqguill Messages postés 17 Date d'inscription vendredi 29 octobre 2004 Statut Membre Dernière intervention 19 août 2007
1 juil. 2005 à 16:37
Salut,

tu peux faire comme ceci :

#include <fstream>

using namespace std;



char fichier[80];

cout<<"Nom du fichier";

cin>>fichier;

ifstream fin(fichier);

char ch;

while(fin.get(ch))

{

if(ch=='<')

{

cout<<ch;

while(fin.get(ch))

{

if(ch=='>')break;



cout<<ch;

}

cout<<">"<<endl;

}

}

fin.close();
0
Tamahoma Messages postés 3 Date d'inscription vendredi 7 janvier 2005 Statut Membre Dernière intervention 1 juillet 2005
1 juil. 2005 à 16:57
OKI merci ! jvenais juste de trouver comment ouvrir un fichier à partir du chemin, je vais maitenant tester ta partie de code avec la recherche de "<" !

Sinon, une chose que j'ai oublié de mentionner : je voudrais savoir si c'est possible de donner un chemin de fichier HTML et l'ouvrir sur le navigateur web (Internet Explorer) ! (je donne le chemin, et IE souvre avec la page donnée)
0
jcqguill Messages postés 17 Date d'inscription vendredi 29 octobre 2004 Statut Membre Dernière intervention 19 août 2007
1 juil. 2005 à 18:39
un petit exemple :



char html[80];

char internet[]={"IEXPLORE "};



cout<<"Nom de la page";

cin>>html;



strcat(internet,html);

system(internet);



il faut que le chemin de ton explorateur (c:\program files\internet
explorer) soit rajouter dans tes varaibles d'environnement system (dans
PATH)
0
Rejoignez-nous