std::stringstream de lire les int et les chaînes de caractères, à partir d'une chaîne

Je suis à la programmation en C++ et je ne suis pas sûr de la façon d'atteindre les objectifs suivants:

Je copie un fichier de flux de la mémoire (parce que j'ai été invité à, je préfère la lecture de flux), et puis essayer d'accéder à ses valeurs à enregistrer dans les chaînes et les variables int.

C'est de créer un interprète. Le code je vais essayer de l'interpréter, c'est (ie):

10 PRINT A
20 GOTO 10

C'est juste un petit exemple de code. Maintenant, les valeurs seront stockées dans une "carte" de la structure au premier et accéder plus tard quand tout sera "interprété".
Le stockage de valeurs sont:

int lnum //numéro de la ligne

string cmd //commande (à IMPRIMER et GOTO)

chaîne exp //expression (A et 10 dans ce cas, mais pourrait tenir des expressions comme (a*b)-c )

question est donné le code suivant, comment puis-je accéder à ces valeurs et de les stocker dans la mémoire?
Aussi l'exp de la chaîne est de taille variable (peut-être juste une variable ou une expression), donc je ne suis pas sûr de la façon de les lire et de les stocker dans la chaîne.

code:


#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>
#include <cstring>
#include <map>
#include <sstream>

using namespace std;

 #include "main.hh"


int main () 
{
    int lenght;
    char *buffer;

//get file directory
    string dir;
    cout << "Please drag and drop here the file to interpret: ";
    getline (cin,dir);
    cout << "Thank you.\n";
    cout << "Please wait while your file is being interpreted.\n \n";

//Open File
    ifstream p_prog;
    p_prog.open (dir.c_str());

//Get file size
    p_prog.seekg (0, ios::end);
    lenght = p_prog.tellg();
    p_prog.seekg(0, ios::beg);

//Create buffer and copy stream to it
    buffer = new char[lenght];
    p_prog.read (buffer,lenght);
    p_prog.close();

//Define map<int, char>
    map<int, string> program;
    map<int, string>::iterator iter;


/***** Read File *****/
    int lnum; //line number
    string cmd; //store command (goto, let, etc...)
    string exp; //to be subst with expr. type inst.

// this is what I had in mind but not sure how to use it properly
// std::stringstream buffer;
// buffer >> lnum >> cmd >> exp;

    program [lnum] = cmd; //store values in map




//free memory from buffer, out of scope
    delete[] buffer;
    return 0;
}

J'espère que c'est clair.

Merci pour votre aide.

Valerio

OriginalL'auteur Val | 2009-12-10