buenas, estoy tratando de crear una especie de compilador, este mismo lee un archivo linea por linea, en cada linea lee hasta que se encuentre un _ y lo guarda en una variable una vez que tengo la variable la comparo con otro y asi sucesivamente, hasta el momento ya pude hacer que lea hasta que se encuentre el _ y lo guarde en una variable para luego hacer la comparacion, pero no he podido limpiar la variable y hacer q salte de linea para seguir comparando, esto seria lo que llevo programado por el momento
void Compilar()
{
char palabra=1;
string ruta=" ",abc=" ",compara="MOSTRAR_"; //variable de prueba
system("cls");
MOSTRAR_ "Digite la ruta del archivo para compilar\n";
cin>>ruta;
ifstream f;
stringstream expresion;
f.open ("programar.txt", ifstream::in);
while (! f.eof() )
{
while (f.good() && (palabra != '_') )
{
palabra = f.get();
expresion << palabra;
}
while (expresion >> abc)
{
MOSTRAR_ abc<<"\n";
if(compara==abc)
{
MOSTRAR_ "Perfect Match" << endl; // este if es para ver si reconoce la variable copiada contra un string
system("pause");
}
}
expresion.clear();
}
f.close();
}
utilice esta funcion while (! f.eof() ) pensando en que con eso iba a leer linea por linea y la funcion expresion.clear(); al final del while para que limpie y vuelva a leer pero no me funciono, agradeceria mucho su ayuda ya que soy un poco nuevo en esto, gracias
void Compilar()
{
char palabra=1;
string ruta=" ",abc=" ",compara="MOSTRAR_"; //variable de prueba
system("cls");
MOSTRAR_ "Digite la ruta del archivo para compilar\n";
cin>>ruta;
ifstream f;
stringstream expresion;
f.open ("programar.txt", ifstream::in);
while (! f.eof() )
{
while (f.good() && (palabra != '_') )
{
palabra = f.get();
expresion << palabra;
}
while (expresion >> abc)
{
MOSTRAR_ abc<<"\n";
if(compara==abc)
{
MOSTRAR_ "Perfect Match" << endl; // este if es para ver si reconoce la variable copiada contra un string
system("pause");
}
}
expresion.clear();
}
f.close();
}
utilice esta funcion while (! f.eof() ) pensando en que con eso iba a leer linea por linea y la funcion expresion.clear(); al final del while para que limpie y vuelva a leer pero no me funciono, agradeceria mucho su ayuda ya que soy un poco nuevo en esto, gracias