[C++] ouvrir et lire dans un fichier
Résolu
EverDraft
Messages postés
24
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
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.
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:
- [C++] ouvrir et lire dans un fichier
- Comment ouvrir un fichier epub ? - Guide
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Comment ouvrir un fichier bin ? - Guide
- Ouvrir un fichier .dat - Guide
- Comment ouvrir un fichier docx ? - Guide
3 réponses
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.
# 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.