• Lunes 18 de Noviembre de 2024, 04:18

Autor Tema:  Sobre Archivos En Dev-c++  (Leído 3391 veces)

BLADDE

  • Miembro activo
  • **
  • Mensajes: 63
    • Ver Perfil
Sobre Archivos En Dev-c++
« en: Sábado 17 de Junio de 2006, 07:21 »
0
que tal amigos. veran estoy haciendo un programa que deve realizar operaciones de polinomios(suma,resta,multiplicacion) usando listas el detalle es que justo cuando entre a ver la materia cambiaron de c++ y c++ builder a DEVc++ bueee...
el show de todo es que hice mi punto h (polinomio.h) ahi pretendo hacer todo ahi estan todas mis funciones ya importo la libreria poniendo en la cabesera #include<polinomio.h> using namespace std; y de ahi trato de crear el objeto de tipo clase polinomios definida en el .h pero no funciona aqui les dejo el codigo de mi .h si a algen le es de ayuda con confiansa meta mano:
#include <fstream.h>
#include <iostream.h>
#include <cstdlib.h>

//---------------------------------------------------------------------------
//**************************************************************
char c;
int co=0,i=0,cont=1,cantidad=0,x=0,y=0;
int ind=0,co2=0,exp2=0;
int caso1=0,caso2=0,nope=0;
char signo,encontrado;

//--------------------------------------------------------------
//--------------------------------------------------------------
//structuras para los terminos
struct termino{//ESTRUCTURAS DE LOS TERMINOS
   int co;     //COEFICIENTE
   int exp;    //EXPONENTEW
   termino *sig; //PUNTERO A SIGUIENTE TERMINO
   termino *ant; //PUNTERO A TERMINO ANTERIOR
};
typedef  termino *pter;
//------------------------------------------------------
struct polinomio{  //ESTRUCTURA DE LOS POLINOMIO
   pter  term;     //PUNTERO AL PRIMER TERMINO DEL POLINOMIO
   polinomio *sig; //PUNTERO A SIGUIENTE POLINOMIO
   polinomio *ant; //PUNTERO AL POLINOMIO ANTERIOR
   };
typedef polinomio *nodo;
//-----------------------------------------------------
struct polinomio2{  //ESTRUCTURA DE LOS POLINOMIO
   pter  term;     //PUNTERO AL PRIMER TERMINO DEL POLINOMIO
   polinomio *sig; //PUNTERO A SIGUIENTE POLINOMIO
   polinomio *ant; //PUNTERO AL POLINOMIO ANTERIOR
   };
typedef polinomio2 *nodo2;
//-----------------------------------------------------
struct lista2{ //ESTRUCTURA DE LAS OPERACIONES CON LOS DEMAS POLINOMIOS
char operacion[2];//VARIABLE PARA LA OPERACION
pter poli; //PUNTERO AL PRIMER TERMINO DEL POLINOMIO
lista2 *sig;   //PUNTERO AL SIGUIENTE POLINOMIO
lista2 *ant;
};
typedef lista2 *plista;
//-----------------------------------------------------
class polinomios{
public:
void inicializar();
void inicializart();
void nuevop();
void nuevot(int co,int exp);
void enlazar();
void separar();
void insertar(char aux[20]);
void enlazar2();
void nuevop2();
void nuevot2(int co,int exp);
void SUMAR();
void RESTAR();
void MULTIPLICAR();
void operacion ();
void nuevotR(int co,int exp);
char mostrar();
private:
plista auxl;
plista list;
pter listat2;
pter auxt2;
pter tmp2;
nodo listap2;
nodo auxp2;

pter listat;
nodo listap;//PRINCIPAL PARA INGRESAR AL PRIMER POLINOMIO DE LA LISTA
nodo auxp;
pter auxt;
pter tmp;
};
//-------------------------------------------------------
//ºººººººººººººººººººººINICIALIZAR
/*char polinomios::mostrar(){
auxt=auxp->term;
i=0;
do {
i++;
}while(auxt!=auxp->term);
}//FIN PROCEDIMIENTO*/
void polinomios::inicializar()
{
auxp=NULL;
listat=NULL;
auxt=NULL;
listap=NULL;
auxl=NULL;
list=NULL;
}

void polinomios::inicializart(){
auxt=NULL;
auxt2=NULL;
listat=NULL;//INICIALIZA UN PUNTERO  A TERMINO
listat2=NULL;//INICIALIZA UN PUNTERO  A TERMINO
}
//-------------------------------------------------------
//ºººººººººººººººººINSERCION DE POLINOMIO POR EL FINAL
void polinomios::nuevop(){

if (listap==NULL){//por que es el primero
listap=new(polinomio);
listap->sig=listap;
listap->ant=listap;
listap->term=NULL;
auxp=listap;
auxp->sig=auxp;
auxp->ant=auxp;

}//finsi
else //sino
if (listap!=NULL){
auxp=new(polinomio);//AUTOMATICAMENTE auxp QUEDA APUNTANDO AL NUEVO POLINOMIO
auxp->sig=listap;
auxp->ant=listap->ant;
listap->ant->sig=auxp;
listap->ant=auxp;
/*listap->term=NULL;*/ }
}//fin procedimiento
//-------------------------------------------------------
//ºººººººººººººººººINSERCION DE TERMINO ORDENADOS
void polinomios::nuevot(int x,int y){
if (listat==NULL){   //CREO EL PRIMER NODO
listat=new(termino);
listat->sig=listat;
listat->ant=listat;
listat->co=x;
listat->exp=y;
auxt=listat;
auxt->sig=listat;
auxt->ant=listat;
}//fin si
else
if (listat!=NULL){
//CREO EL NODO
auxt=new(termino);
auxt->co=x;
auxt->exp=y;
auxt->sig=NULL;
auxt->ant=NULL;
//REVISO SI ES EL DE GRADO MAYOR
//..............................................................................
if ((auxt->exp)>=(listat->exp)){ //AQUI DEBE ENTRAR ORDENADO Y SIN REPETIR
if ((auxt->exp)==(listat->exp)){  //SI ES IGUAL LO SUMO
listat->co=listat->co+auxt->co; //AQUI SE SUMAN SI SON IGUALES LOS EXPONENTES PARA NO REPETIR TERMINOS
}
else
if (auxt->exp>listat->exp){//SINO LO ANEXO COMO EL MAYOR
auxt->sig=listat;
auxt->ant=listat->ant;
listat->ant->sig=auxt;
listat->ant=auxt;
listat=auxt;}
}//finsi
else
//REVISO SI ES EL DE GRADO MENOR
//..............................................................................
if (auxt->exp<=listat->ant->exp){
if (auxt->exp==listat->ant->exp) {//SI ES IGUAL LO SUMO
listat->ant->co=listat->ant->co+auxt->co;//AQUI SE SUMAN SI SON IGUALES LOS EXPONENTES PARA NO REPETIR TERMINOS
}//FIN SI
else
if (auxt->exp<listat->ant->exp){   //SINO LO ANEXO
auxt->sig=listat;
auxt->ant=listat->ant;
listat->ant->sig=auxt;
listat->ant=auxt;}
}//fin si
else
if ((auxt->exp!=listat->ant->exp)&(auxt->exp)!=(listat->exp))  {
//SI ESTA DENTRO DE LA LISTA
//..............................................................................
tmp=listat->sig;
while (auxt->exp<tmp->exp){
tmp=tmp->sig;      //ME DA LA POSICION DONDE DEBO INSERTAR
}//fin mientras
if (tmp->exp==auxt->exp){   //ME DA LA POSICION DONDE DEBE ESTAR
tmp->co=tmp->co+auxt->exp;
}
else
if (tmp->exp<auxt->exp){//SINO LO ANEXO ADELANTE
auxt->sig=tmp;
auxt->ant=tmp->ant;
tmp->ant->sig=auxt;
tmp->ant=auxt;}//FIN SI
}//FIN SI
}
}//fin procedimiento
//ºººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººº
void polinomios::enlazar(){
auxp->term=listat; //**ENLAZO CON EL PUNTERO DE POLINOMIO
}//FIN PROCEDIMIENTO
//ººººººººººººººººººººººººººººººººººººººººººººººººººººººº2
void polinomios::enlazar2(){
auxl->poli=listat2; //**ENLAZO CON EL PUNTERO DE POLINOMIO
nope++;
}//FIN PROCEDIMIENTO

//ººººººººººººººººººººººººººººººººººººººººººººººººººººººº2
void polinomios::insertar(char aux[20]){  //PARA LA SEGTUNDA LISTA
auxl=new(lista2);  //LA OTRA LISTA SE CREA PARA LAS OPERACIONES CON LOS DEMAS POLINOMIOS
//..............................................................................
if (list==NULL){  //SI NO HAY NINGUN POLINOMIO
auxl->sig=auxl;//APUNTA ASI MISMO
auxl->ant=auxl;//APUNTA ASI MISMO
auxl->poli=NULL; //AUN NO SE ENLAZA
list=auxl;
list->poli=NULL; //AUN NO SE ENLAZA
list=auxl;//ASIGNO EL PUNTERO A LA PRIMERA OPERACION
list->sig=auxl;//APUNTA ASI MISMO
list->ant=auxl;//APUNTA ASI MISMO
StrCopy(list->operacion,aux); //GUARDO LA OPERACION
StrCopy(auxl->operacion,aux); //GUARDO LA OPERACION
}//FIN SI
else
if (list!=NULL){ //SI YA HAY UNA OPERACION CON POLINOMIO
auxl->sig=list;  //INSERTO LA SIGUIENTE
auxl->ant=list->ant;
list->ant->sig=auxl;
list->ant=auxl;
auxl->poli=NULL;
StrCopy(auxl->operacion,aux);
}//FIN SI
}//FIN PROCEDIMIENTO
//ºººººººººººººººººINSERCION DE TERMINO ORDENADOS
void polinomios::nuevot2(int x,int y){ //PARA INSERTAR LOS TERMINOS ORDENADOS DE LA 2da LISTA
if (listat2==NULL){   //CREO EL PRIMER NODO
listat2=new(termino);
listat2->sig=listat2;
listat2->ant=listat2;
listat2->co=x;
listat2->exp=y;
auxt2=listat2;
auxt2->sig=listat2;
auxt2->ant=listat2;
}//fin si
else
if (listat2!=NULL){
//CREO EL NODO
auxt2=new(termino);
auxt2->co=x;
auxt2->exp=y;
auxt2->sig=NULL;
auxt2->ant=NULL;
//REVISO SI ES EL DE GRADO MAYOR
//..............................................................................
if ((auxt2->exp)>=(listat2->exp)){ //AQUI DEBE ENTRAR ORDENADO Y SIN REPETIR
if ((auxt2->exp)==(listat2->exp)){  //SI ES IGUAL LO SUMO
listat2->co=listat2->co+auxt2->co; //AQUI SE SUMAN SI SON IGUALES LOS EXPONENTES PARA NO REPETIR TERMINOS
}
else
if (auxt2->exp>listat2->exp){//SINO LO ANEXO COMO EL MAYOR
auxt2->sig=listat2;
auxt2->ant=listat2->ant;
listat2->ant->sig=auxt2;
listat2->ant=auxt2;
listat2=auxt2;}
}//finsi
else
//REVISO SI ES EL DE GRADO MENOR
//..............................................................................
if (auxt2->exp<=listat2->ant->exp){
if (auxt2->exp==listat2->ant->exp) {//SI ES IGUAL LO SUMO
listat2->ant->co=listat2->ant->co+auxt2->co;//AQUI SE SUMAN SI SON IGUALES LOS EXPONENTES PARA NO REPETIR TERMINOS
}//FIN SI
else
if (auxt2->exp<listat2->ant->exp){   //SINO LO ANEXO
auxt2->sig=listat2;
auxt2->ant=listat2->ant;
listat2->ant->sig=auxt2;
listat2->ant=auxt2;}
}//fin si
else
if ((auxt2->exp!=listat2->ant->exp)&(auxt2->exp!=listat2->exp))  {
//SI ESTA DENTRO DE LA LISTA
//..............................................................................
tmp2=listat2->sig;
while (auxt2->exp<tmp2->exp){
tmp2=tmp2->sig;      //ME DA LA POSICION DONDE DEBO INSERTAR
}//finmientras
if (tmp2->exp==auxt2->exp){   //ME DA LA POSICION DONDE DEBE ESTAR
tmp2->co=tmp2->co+auxt2->exp;
}
else
if (tmp2->exp<auxt2->exp){//SINO LO ANEXO ADELANTE
auxt2->sig=tmp2;
auxt2->ant=tmp2->ant;
tmp2->ant->sig=auxt2;
tmp2->ant=auxt2;}//FIN SI
}//FIN SI
}
}//fin procedimiento
//ºººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººº
//ºººººººººººººººººINSERCION DE TERMINO ORDENADOS
void polinomios::nuevotR(int x,int y){
if (listat==NULL){   //CREO EL PRIMER NODO
listat=new(termino);
listat->sig=listat;
listat->ant=listat;
listat->co=x;
listat->exp=y;
auxt=listat;
auxt->sig=listat;
auxt->ant=listat;
}//fin si
else
if (listat!=NULL){
//CREO EL NODO
auxt=new(termino);
auxt->co=x;
auxt->exp=y;
auxt->sig=NULL;
auxt->ant=NULL;
//REVISO SI ES EL DE GRADO MAYOR
//..............................................................................
if ((auxt->exp)>=(listat->exp)){ //AQUI DEBE ENTRAR ORDENADO Y SIN REPETIR
if ((auxt->exp)==(listat->exp)){  //SI ES IGUAL LO SUMO
listat->co=listat->co-auxt->co; //AQUI SE SUMAN SI SON IGUALES LOS EXPONENTES PARA NO REPETIR TERMINOS
}
else
if (auxt->exp>listat->exp){//SINO LO ANEXO COMO EL MAYOR
auxt->sig=listat;
auxt->ant=listat->ant;
listat->ant->sig=auxt;
listat->ant=auxt;
listat=auxt;}
}//finsi
else
//REVISO SI ES EL DE GRADO MENOR
//..............................................................................
if (auxt->exp<=listat->ant->exp){
if (auxt->exp==listat->ant->exp) {//SI ES IGUAL LO SUMO
listat->ant->co=listat->ant->co-auxt->co;//AQUI SE SUMAN SI SON IGUALES LOS EXPONENTES PARA NO REPETIR TERMINOS
}//FIN SI
else
if (auxt->exp<listat->ant->exp){   //SINO LO ANEXO
auxt->sig=listat;
auxt->ant=listat->ant;
listat->ant->sig=auxt;
listat->ant=auxt;}
}//fin si
else
if ((auxt->exp!=listat->ant->exp)&(auxt->exp)!=(listat->exp))  {
//SI ESTA DENTRO DE LA LISTA
//..............................................................................
tmp=listat->sig;
while (auxt->exp<tmp->exp){
tmp=tmp->sig;      //ME DA LA POSICION DONDE DEBO INSERTAR
}//fin mientras
if (tmp->exp==auxt->exp){   //ME DA LA POSICION DONDE DEBE ESTAR
tmp->co=tmp->co-auxt->exp;
}
else
if (tmp->exp<auxt->exp){//SINO LO ANEXO ADELANTE
auxt->sig=tmp;
auxt->ant=tmp->ant;
tmp->ant->sig=auxt;
tmp->ant=auxt;}//FIN SI
}//FIN SI
}
}//fin procedimiento

//ºººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººº
void polinomios::separar(){
int exp=0;
//POLI.OUT (FICHERO DE SALIDA)
ofstream out;
out.open("POLI.OUT");
out.close();//CERRAR ARCHIVO
//----------------------------------------------------
ifstream in; //in es el archivo de entrada
//----------- -----------------------------------------
in.open("POLI.IN");  //se abre el archivo
in>>cantidad;
while (cont<=cantidad){ caso1=0;caso2=0;signo='\0';ind=0;i=0;exp=0;co=0;
char a[20]=" ";
in >>a;  //SE LEE POLINOMIO ACTUAL
c=a[0]; //SE LE ASIGNA EL PRIMER CARACTER
inicializart();//INICIALIZA EL PUNTERO TERMINO
nuevop();//INGRESA UN NUEVO POLINOMIO
/***********************
*SEPARACION DE TERMINOS*
************************/
while (c!='\0'){
    if ((c=='+')||(c=='-')){signo=c;i++;c=a;caso1=0;caso2=0;exp=0;co=0;ind=0;
     }//para el signo
/***************
*    CASOS:    *
*CASOS SIMPLES *
****************/            //ESTA DE AQUI ERA PARA:
     if ((c!='x')&(caso1!=2)){//recueda que la 3er condicion es para que
       co=(co*10)+(StrToInt©);            //no se confunda con el termino indipendiente
       caso1=1;
     }//finsi
     if ((c=='x')&(caso1==1)){  //se puede hacer otro caso con 0
     caso2=1;
     caso1=2;
     exp=0;
     }//finsi
     if ((c!='x')&(caso1==2)&(caso2==1)){
     exp=(exp*10)+(StrToInt©);
     }//fin si
/*************
*    CASOS   *
*  ESPECIALES*
**************/
     if ((c=='x')&(caso1==0)){  //se puede hacer otro caso con 0
     co=1;
     if (signo=='-'){co=(co*-1);}
     caso2=1;
     caso1=2;
     }//finsi
     if ((c=='x')&((a[i+1]=='+')||(a[i+1]=='-')||(a[i+1]=='\0')))
     {exp=1;
     }//FINSI
    i++;
    c=a;

     if ((c=='+')||(c=='-')||c=='\0'){ //hay que mejorarlo por el vacio
     if (signo=='-'){co=co*-1;}
     x=0;y=0;
     nuevot( co, exp);}
 }//fin mientras
enlazar();
 cont++;
}//fin mientras mayor
//**************DESCOMPOSICION Y OPERACIONES ******************
//------------------------------------------------------------------
char b[20]=" ";

while (c!='#'){
char b[20]=" ";
in >>b;
c=b[0];
inicializart();//INICIALIZA EL PUNTERO TERMINO PARA UN NUEVO POLINOMIO
//------------------------------------------------------------------
if ((b[0]=='A')||(b[0]=='S')||(b[0]=='M')){
insertar(B);//CREO UN NODO PARA OPERACION QUE CONTENDRA EL POLINOMIO
}//FIN SI
if ((b[0]!='A')&(b[0]!='S')&(b[0]!='M')&(b[0]!='#')){
 co=0;exp=0;caso1=0;caso2=0;
i=0;
c=b[0];
 while (c!='\0'){
    if ((c=='+')||(c=='-')){signo=c;i++;c=b;caso1=0;caso2=0;exp=0;co=0;ind=0;
     }//para el signo
/***************
*    CASOS:    *
*CASOS SIMPLES *
****************/            //ESTA DE AQUI ERA PARA:
     if ((c!='x')&(caso1!=2)){//recueda que la 3er condicion es para que
       co=(co*10)+(StrToInt©);            //no se confunda con el termino indipendiente
       caso1=1;
     }//finsi
     if ((c=='x')&(caso1==1)){  //se puede hacer otro caso con 0
     caso2=1;
     caso1=2;
     exp=0;
     }//finsi
     if ((c!='x')&(caso1==2)&(caso2==1)){
     exp=(exp*10)+(StrToInt©);
     }//fin si
/*************
*    CASOS   *
*  ESPECIALES*
**************/
     if ((c=='x')&(caso1==0)){  //se puede hacer otro caso con 0
     co=1;
     if (signo=='-'){co=(co*-1);}
     caso2=1;
     caso1=2;
     }//finsi
     if ((c=='x')&((b[i+1]=='+')||(b[i+1]=='-')||(b[i+1]=='\0')))
     {exp=1;
     }//FINSI
    i++;
    c=b;
     if ((c=='+')||(c=='-')||c=='\0'){ //hay que mejorarlo por el vacio
     if (signo=='-'){co=co*-1;}
     x=0;y=0;
     nuevot2( co, exp);}
 }//fin mientras
enlazar2();
}//FIN SI
}//FIN MIENTRAS
in.close();
}//FIN PROCEDIMINETO
//ºººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººº
void polinomios::SUMAR() {
caso1=1;
auxt2=auxl->poli;
auxt=listap->term;
tmp=auxt;
i=tmp->exp;
ind=auxt2->exp;

do {
      nuevop();  //CREO UN NUEVO POLINOMIO
   do{

        if ((tmp->co!=0)||(tmp->exp!=0)) {
        co2=tmp->co;
        exp2=tmp->exp;
        nuevot(co2,exp2);
        }
       tmp=tmp->sig;
      }while (tmp->exp!=i);//FIN REPETIR

      do {   //REPETIR
      co2=auxt2->co;
      exp2=auxt2->exp;
      nuevot(co2,exp2);
      auxt2=auxt2->sig;
      }while (auxt2->exp!=ind);//FIN REPETIR
      enlazar();
       listat=NULL;
//................SE AVANZA EN LOS POLINJOMIOS
      auxp2=auxp2->sig;
      auxt=auxp2->term;
      tmp=auxt;
      caso1++;
 }while(caso1<=cantidad);//FIN MIENTRAS
  cantidad=(cantidad*2);//DUPLICO LA CANTIDAD DE POLINOMIOS
 }//FIN PROCEDIMIENTO
//ºººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººº
void polinomios::RESTAR(){
caso1=1;
auxt2=auxl->poli;
auxt=listap->term;
tmp=auxt;
i=tmp->exp;
ind=auxt2->exp;

do {
      nuevop();  //CREO UN NUEVO POLINOMIO
   do{

        if ((tmp->co!=0)||(tmp->exp!=0)) {
        co2=tmp->co;
        exp2=tmp->exp;
        nuevotR(co2,exp2);
        }
       tmp=tmp->sig;
      }while (tmp->exp!=i);//FIN REPETIR

      do {   //REPETIR
      co2=auxt2->co;
      exp2=auxt2->exp;
      nuevotR(co2,exp2);
      auxt2=auxt2->sig;
      }while (auxt2->exp!=ind);//FIN REPETIR
      enlazar();
       listat=NULL;
//................SE AVANZA EN LOS POLINJOMIOS
      auxp2=auxp2->sig;
      auxt=auxp2->term;
      tmp=auxt;
      caso1++;
 }while(caso1<=cantidad);//FIN MIENTRAS
  cantidad=(cantidad*2);//DUPLICO LA CANTIDAD DE POLINOMIOS
}//FINPROCEDIMIENTO
//ºººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººº
void polinomios::MULTIPLICAR (){}//FINPROCEDIMIENTO
//ºººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººº
void polinomios::operacion()//PARA ELEGIR LA OPERACION
{
caso2=0;
auxl=list;
auxp=listap;//EL PRIMER POLINOMIO DE LA LISTA
auxp2=auxp;
do{
if (auxl->operacion[0]=='A'){ SUMAR();   }//FINSI
if (auxl->operacion[0]=='S'){RESTAR(); }//FINSI
if (auxl->operacion[0]=='M'){MULTIPLICAR(); }//FINSI
auxl=auxl->sig;
caso2++;
} while(caso2<=nope);
auxp=listap;
}//FIN PROCEDIMIENTO


Este es el error que bota:
4 D:\Dev-Cpp\include\c++\3.4.2\backward\fstream.h:31,               from F:\Nueva carpeta\principal.cpp In file included from D:/Dev-Cpp/include/c++/3.4.2/backward/fstream.h:31,               from F:\Nueva carpeta\principal.cpp

aclaro la libreria esta declarada tanto en el principal como en el .h
a los que tomen el codigo les explico ese codigo lo hice primero en c++builder y ahora lo trato de traducir a dev c++ muchas gracias por atender esto y aquien tome el codigo suerte

Geo

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: Sobre Archivos En Dev-c++
« Respuesta #1 en: Sábado 17 de Junio de 2006, 18:42 »
0
No muestras el error, sólo la parte que lo provoca. Al parecer tienes problemas al tratar de incluir las cabeceras "antiguas" (backward, puestas para tratar de mantener algo de compatibilidad con código que no se apega al estándar).

Esto:
Código: Text
  1.  
  2. #include &#60;fstream.h&#62;
  3. #include &#60;iostream.h&#62;
  4. #include &#60;cstdlib.h&#62;
  5.  

debiera ser:

Código: Text
  1.  
  2. #include &#60;fstream&#62;
  3. #include &#60;iostream&#62;
  4. #include &#60;cstdlib&#62;
  5. using namespace std;
  6.  
  7.  

Saludos,
JJ (Geo).
La imaginación es el límite.
Hardware & Software | Mexchip

BLADDE

  • Miembro activo
  • **
  • Mensajes: 63
    • Ver Perfil
Re: Sobre Archivos En Dev-c++
« Respuesta #2 en: Sábado 17 de Junio de 2006, 21:19 »
0
Muchas gracias amigo si definitivamente eso era lo puse como dijiste y funciono de verdad gracias. en el otro msj esta el error que dava. ahora si algen puede responder en dev c++ no existen las funciones StrCopy,StrToInt de ser asi tiene alguna funcion que haga el trabajo de estas? como les dije hice mi .h en builder es la primera vez q trabajo en dev c++
gracias geo y a todos

Este es el error que bota:
4 D:\Dev-Cpp\include\c++\3.4.2\backward\fstream.h:31, from F:\Nueva carpeta\principal.cpp In file included from D:/Dev-Cpp/include/c++/3.4.2/backward/fstream.h:31, from F:\Nueva carpeta\principal.cpp

BLADDE

  • Miembro activo
  • **
  • Mensajes: 63
    • Ver Perfil
Re: Sobre Archivos En Dev-c++
« Respuesta #3 en: Sábado 17 de Junio de 2006, 22:04 »
0
que tal otraves veran la libreria styring.h tiene la funcion strcpy ahora el StrToInt nop tiene esta atoi pero ami no me funciona vean mi implementacion:

void polinomios::separar(){
int exp=0;
//POLI.OUT (FICHERO DE SALIDA)
ofstream out;
out.open("POLI.OUT");
out.close();//CERRAR ARCHIVO
//----------------------------------------------------
ifstream in; //in es el archivo de entrada
//----------- -----------------------------------------
in.open("POLI.IN");  //se abre el archivo
in>>cantidad;
while (cont<=cantidad){ caso1=0;caso2=0;signo='\0';ind=0;i=0;exp=0;co=0;

char a[20]=" ";
in >>a;  //SE LEE POLINOMIO ACTUAL
c=a[0]; //SE LE ASIGNA EL PRIMER CARACTER
inicializart();//INICIALIZA EL PUNTERO TERMINO
nuevop();//INGRESA UN NUEVO POLINOMIO
/***********************
*SEPARACION DE TERMINOS*
************************/
while (c!='\0'){
    if ((c=='+')||(c=='-')){signo=c;i++;c=a;caso1=0;caso2=0;exp=0;co=0;ind=0;
     }//para el signo
/***************
*    CASOS:    *
*CASOS SIMPLES *
****************/            //ESTA DE AQUI ERA PARA:
     if ((c!='x')&(caso1!=2)){//c es de tipo char
      co=(co*10)+(atoi©); //Aqui da el error y entodas la secciones que llamo atoi
       caso1=1;
     }//finsi
     if ((c=='x')&(caso1==1)){  //se puede hacer otro caso con 0
     caso2=1;
     caso1=2;
     exp=0;
     }//finsi
     if ((c!='x')&(caso1==2)&(caso2==1)){
     exp=(exp*10)+(atoi©);
     }//fin si
/*************
*    CASOS   *
*  ESPECIALES*
**************/
     if ((c=='x')&(caso1==0)){  //se puede hacer otro caso con 0
     co=1;
     if (signo=='-'){co=(co*-1);}
     caso2=1;
     caso1=2;
     }//finsi
     if ((c=='x')&((a[i+1]=='+')||(a[i+1]=='-')||(a[i+1]=='\0')))
     {exp=1;
     }//FINSI
    i++;
    c=a;

     if ((c=='+')||(c=='-')||c=='\0'){ //hay que mejorarlo por el vacio
     if (signo=='-'){co=co*-1;}
     x=0;y=0;
     nuevot( co, exp);}
 }//fin mientras
enlazar();
 cont++;
}//fin mientras mayor
//**************DESCOMPOSICION Y OPERACIONES ******************
//------------------------------------------------------------------
char b[20]=" ";

while (c!='#'){
char b[20]=" ";
in >>b;
c=b[0];
inicializart();//INICIALIZA EL PUNTERO TERMINO PARA UN NUEVO POLINOMIO
//------------------------------------------------------------------
if ((b[0]=='A')||(b[0]=='S')||(b[0]=='M')){
insertar(B);//CREO UN NODO PARA OPERACION QUE CONTENDRA EL POLINOMIO
}//FIN SI
if ((b[0]!='A')&(b[0]!='S')&(b[0]!='M')&(b[0]!='#')){
 co=0;exp=0;caso1=0;caso2=0;
i=0;
c=b[0];
 while (c!='\0'){
    if ((c=='+')||(c=='-')){signo=c;i++;c=b;caso1=0;caso2=0;exp=0;co=0;ind=0;
     }//para el signo
/***************
*    CASOS:    *
*CASOS SIMPLES *
****************/            //ESTA DE AQUI ERA PARA:
     if ((c!='x')&(caso1!=2)){//recueda que la 3er condicion es para que
       co=(co*10)+(atoi©);            //no se confunda con el termino indipendiente
       caso1=1;
     }//finsi
     if ((c=='x')&(caso1==1)){  //se puede hacer otro caso con 0
     caso2=1;
     caso1=2;
     exp=0;
     }//finsi
     if ((c!='x')&(caso1==2)&(caso2==1)){
     exp=(exp*10)+(atoi©);
     }//fin si
/*************
*    CASOS   *
*  ESPECIALES*
**************/
     if ((c=='x')&(caso1==0)){  //se puede hacer otro caso con 0
     co=1;
     if (signo=='-'){co=(co*-1);}
     caso2=1;
     caso1=2;
     }//finsi
     if ((c=='x')&((b[i+1]=='+')||(b[i+1]=='-')||(b[i+1]=='\0')))
     {exp=1;
     }//FINSI
    i++;
    c=b;
     if ((c=='+')||(c=='-')||c=='\0'){ //hay que mejorarlo por el vacio
     if (signo=='-'){co=co*-1;}
     x=0;y=0;
     nuevot2( co, exp);}
 }//fin mientras
enlazar2();
}//FIN SI
}//FIN MIENTRAS
in.close();
}//FIN PROCEDIMINETO
//ºººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººº
 

el error que da es
428 F:\Nueva carpeta\principal.cpp invalid conversion from `char' to `const char*'
428 F:\Nueva carpeta\principal.cpp   initializing argument 1 of `int atoi(const char*)'

es que acaso el no toma un char sino una cadena????? 'a' o "a"??

x.cyclop

  • Miembro de PLATA
  • *****
  • Mensajes: 1039
  • Nacionalidad: mx
    • Ver Perfil
Re: Sobre Archivos En Dev-c++
« Respuesta #4 en: Domingo 18 de Junio de 2006, 04:31 »
0
¿Cuál es la diferencia entre <iostream.h> y <iostream>? :blink:

- Great works aren't produced on the first try. [Ernest Hemingway]
- Be ambitious, yet realistic in your dreams. Do something that makes a positive impact. Don’t let the nay-sayers get you down. [Bjarne Stroustrup]

Geo

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: Sobre Archivos En Dev-c++
« Respuesta #5 en: Domingo 18 de Junio de 2006, 06:26 »
0
Cita de: "BLADDE"
el error que da es
428 F:\Nueva carpeta\principal.cpp invalid conversion from `char' to `const char*'
428 F:\Nueva carpeta\principal.cpp   initializing argument 1 of `int atoi(const char*)'

es que acaso el no toma un char sino una cadena????? 'a' o "a"??
La función atoi espera un puntero a char (constante), y tú le estás pasando un char. Prueba así:

Código: Text
  1.  
  2. atoi( &c );
  3.  
  4.  

La función atoi devuelve 0 para todos los caracteres que no sean un dígito.

Y una sugerencia, utiliza las etiquetas CODE para postear código, lo hacen un poquito más legible :).

Cita de: "X.Cyclop"
¿Cuál es la diferencia entre <iostream.h> y <iostream>? :blink:
El estándar indica que las cabeceras (estándar) deben incluirse sin extensión, la cual se encargará de manejar el compilador (si ésta existiera). De esta forma, se asegura portabilidad en caso de que haya algún sistema en que por alguna razón no se puedan tener extensiones en los archivos, o que no soporten más de X caracteres para la extensión, etc.

MinGW, el compilador con el que trabaja Dev-C++, maneja todos sus archivos de cabecera sin extensión (recuerda, estamos hablando de C++, no de C), pero incluye (por compatibilidad, aunque no he visto una aplicación que los use :P) también archivos de cabecera de C++ con extensión .h. Entonces, <iostream.h> e <iostream> son dos archivos diferentes para este compilador (aunque desconozco las diferencias exactas de implementación de ambos archivos).

Saludos,
JJ (Geo).
La imaginación es el límite.
Hardware & Software | Mexchip