quien sabe como leer un archivo de texto, analizarlo y convertirlo a postfija en archivo

elroberperez
23 de Noviembre del 2005
Alguien sabe como convertir un archivo de texto que contiene solamente (a+b) a otro archivo de salida que contenga ab+ . El programa debe leer un archivo texto, y generar uno nuevo en notacion posfija. Gracias, letty no me has respondido...

kike
23 de Noviembre del 2005
Este programa hace mas o menos lo que tu dices, usa un archivo que deve existir previamente (inicial.txt) y genera un archivo (final.txt), que contiene las mismas lineas que el original pero el primer signo + o - se ha colocado al final de la linea.

#include <iostream.h>
#include <fstream.h>
#include <conio.h>
#include <string.h>

void main()
{
//bufer temporal
char bufer[100];
//abrir archivo inicial
ifstream in("inicial.txt",ios::in|ios::nocreate);
if(!in)
{
cout<<"fallo al abrir archivo inicial."<<endl;
getch();
return;
}
//abrir archivo final
ofstream out("final.txt");
if(!out)
{
cout<<"fallo al abrir o crear el archivo final."<<endl;
getch();
return;
}
//bucle para comvertir en postfijo
while(!in.eof())
{
in.getline(bufer,100);//obtener linea de archivo inicial
char *ptr=strpbrk(bufer,"+-");//apuntar al signo + o -
char fin[100];//bufer auxiliar igual al inicial
strcpy(fin,bufer);
out<<strtok(fin,"+-");//copiar 1ª parte a archivo final
char c=ptr[0];//guardar signo + o -
if(strcmp(bufer,ptr))//si el signo no era sufijo
{
ptr++;//saltar el simbolo
out<<ptr<<c<<endl;//copiar 2ªparte cadena y simbolo
//al archivo final
}
else//si el simbolo era sufijo
out<<c<<endl;//copiar solo el simbolo como postfijo
}
//cerrar archivos
out.close();
in.close();
}


espero te sirva...