[C++] ouvrir et lire dans un fichier

Résolu/Fermé
EverDraft Messages postés 24 Date d'inscription vendredi 30 novembre 2007 Statut Membre Dernière intervention 23 août 2008 - 3 janv. 2008 à 16:14
 Utilisateur anonyme - 27 sept. 2009 à 18:10
Bonjour,
Je viens enocre a vous car j'ai un nouveau probleme.
Je cherche a ouvrir dans un fichier et lire son contenu. Le fichier est de type texte.
ex:
Draftbox $ > cat toto.cc
> int main(void)
{
std::cout << "toto" << std::endl;
}
Draftbox $ > ./monprog toto.c
> int main(void)
{
std::cout << "toto" << std::endl;
}
Draftbox $ >

J'aimerais recuperer chaque mot en token pour les scanner.
Merci pour votre aide.
A voir également:

3 réponses

Utilisateur anonyme
3 janv. 2008 à 16:21
bonjour

essaye en utilisant la classe fstream
1
EverDraft Messages postés 24 Date d'inscription vendredi 30 novembre 2007 Statut Membre Dernière intervention 23 août 2008 1
3 janv. 2008 à 16:35
Merci, J'ai trouver la solution:

# include <string>
# include <fstream>
# include <istream>
# include <iostream>
# include <sstream>
# include <list>

int main(int argc,
char** argv)
{
std::list<std::string> argv_;
std::list<std::string>::iterator i;
std::ifstream file_in(argv[1]);
char c;
std::string tmp;

for (int i = 0; i < argc; i++)
std::cout << argv[i] << std::endl;
for(int i = 0; i < argc; i++)
argv_.push_back(argv[i]);
for (i = argv_.begin(); i != argv_.end(); i++)
std::cout << *i << std::endl;
if (!file_in.is_open ())
{
std::cerr << "Failed to open file." << std::endl;
exit(2);
}
for (int i = 0; file_in.peek() != -1; i++)
{
c = file_in.peek();
if (c != ' ' && c != '\n')
tmp += file_in.peek();
std::cout << c;
if (c == ' ' || c == '\n')
{
std::cout << "la string est :`" << tmp << "\'" << std::endl;;
tmp = "";
}
file_in.get();
}
}
il fallait bien utiliser la classe fstream.
1
Utilisateur anonyme
27 sept. 2009 à 18:10
bonjeur
explique
0