[C++] ouvrir et lire dans un fichier

Résolu
EverDraft Messages postés 24 Statut Membre -  
 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.
Configuration: Mac OS X
Firefox 2.0.0.11

3 réponses

  1. Utilisateur anonyme
     
    bonjour

    essaye en utilisant la classe fstream
    1
  2. EverDraft Messages postés 24 Statut Membre 1
     
    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