Foro Oficial De C++

si quiere ser hacker, C# tambien le ofrece esa opcion. si, C++ es mas maquina, pero si sabe usar C#, puede hacer cosas que con C++ no hace.

MMmm.... si y no, me toca mezclarlos a ambos, porque no voy a perder tiempo haciendo cosas en C++ que ya estan hechas en C#, mas bien los mezclo, uso una cosita de allá desde aca y viceversa, todo es recursividad, pero ahi vamos.

Es que C++ se puede tocar la maquina muy por debajo, entonces mas bien lo que me toque obligatoriamente tocar en maquina, lo haré en C++, por ahora C# esta bien para mi y me gusta.

Quiero ayudar a hackear el iPhone hehehehehe, para eso me toca ir pero bien abajo, pero es solo un proyecto personal, con el tiempo aprenderé como funciona el equipo y ya haré mis jailbreaks :p
 
buenas...
http://weseetips.com/2009/03/01/gotoxy-function-in-visual-c/
un ejemplo con la función gotoxy en visual c++.

saludos.

Gracias, aunque ya la avía encontrado antes pero no entendía hasta que encontré uno de un peruano estaba hay mas o menos pero que búsqueda tan jijuemachica pongo aquí lo que entendí pa’ los que son bruticos como yo =)
La librería necesaria es windows.h
SetConsoleCursorPosition(); esta es a función
Pero para utilizar esto es necesario tener declaradas una especie objetos o.0
COORD aquivaelnombredelobjeto;
Eje vertical
aquivaelnombredelobjeto.Y=5;//se le puede asignar el valor de un entero
eje horizontal
aquivaelnombredelobjeto.X=5;
y la función seria asi SetConsoleCursorPosition(GetStdHandle( STD_OUTPUT_HANDLE),aquivaelnombredelobjeto );
bueno que alguien me esplique que inventa esto= GetStdHandle( STD_OUTPUT_HANDLE)
 
  • Me gusta
Reacciones: 2 personas
Hola foro como estan todos
me uno a esta gran comunidad y agradeciendo
el espacio que dan para resolver cualquier duda
Traigo aca amigos trabajo para todos aquellos buenos programadores
yo empiezo con el c++y me dejaron un tarea que aun no comprendo
ando perdido quisiera que me ayudaran con esto:::

Mi teacher me dejo esta tarea y no tengo idea como hacerla por favor ayuda

TAREa::: hacer este proyecto crear arboles
El programa necesita minimo 2 arboles 2 estructuras
puede ser de una Farmacia o alguna tienda
lo importante que lleve 2 o 3 arboles
[FONT=Candara, sans-serif]debera utilizar preorden,inorden,postorden[/FONT]




[FONT=Candara, sans-serif]por favor alguien que pueda ayudarme y darme buenos ejemplos o crear[/FONT]
[FONT=Candara, sans-serif]algun arbol para que pueda tomar de ejemplo y asi construir mi propio
[/FONT]

[FONT=Candara, sans-serif]proyecto ayudaaaaaaa.. Graciassssssss:(
[/FONT]
 
Bueno solo pedia una idea tengo algo que hice, no dejo todo el trabajo a ustedes
solo pido un ejemplo tengo algo de conocimiento pero en este trabajo aun tengo dudas
y me pierdo aun soy un novato

ejemplo
hice un programa con un alquiler de un garage
que guardaba clientes, autos en archivos
como pueden ver mi programa tiene 3 estructuras y debe llevar 2 arboles
pero a la hora de ir a ingresos no pasa me da error

entonces lo que necesito es que halla una funcion para el ingreso de clientes
y una funcion para el ingreso de autos

podria dejar mi programa aca mi proyecto asi darle un ojo??
 
#include<conio.h>
#include<dos.h>
#include<iostream.h>
#include<math.h>
#include<stdio.h>
#include <stdlib.h>
#include<string.h>
FILE *ar;
FILE *ar1;
FILE *ar2;


//--------------estructruras---------------------
struct cliente
{
int idcli;
char nom[20];
char ape[30];
char ced[9];
struct cliente *izq, *der;
};
struct autos
{
int idauto;
int idcli;
char marca[10];
char modelo[10];
char matricula[6];
struct autos *izq, *der;
};
struct calcular
{
int idcli;
int idauto;
int idcal;
float valor;
float iva;
float desc;
float total;
struct calcular *izq, *der;
};


//-----------funciones amigas-------------


int limpiar(cliente *a)
{
return a==NULL;
}

int hijo(cliente *a)
{
return !a->der && !a->izq;
}

int limpiar(autos *a)
{
return a==NULL;
}

int hijo(autos *a)
{
return !a->der && !a->izq;
}

int limpiar(calcular *a)
{
return a==NULL;
}

int hijo(calcular *a)
{
return !a->der && !a->izq;
}



//---------------funcion de ingresos-----------------------



void ingre_cli(cliente **a, cliente aux)
{
if(*a==NULL)
{
(*a)=new(cliente);
(*a)->idcli=aux.idcli;
strcpy((*a)->nom, aux.nom);
strcpy((*a)->ape, aux.ape);
strcpy((*a)->ced, aux.ced);
(*a)->izq=(*a)->der=NULL;
}
else if((aux.idcli) > ((*a)->idcli))
{
ingre_cli(&(*a)->der,aux);
}
else if((aux.idcli) < ((*a)->idcli))
{
ingre_cli(&(*a)->izq,aux);
}
}



void ingre_auto(autos **b, int aux)
{
if(*b == NULL)
{
(*b)=new(autos);
(*b)->idauto=aux;

printf("\nID_Cliente:\t");
scanf("%d", & (*b)->idcli);
printf("\n MODELO: ");
scanf("%s",(*b)->modelo);
printf("\n MARCA: ");
scanf("%s",(*b)->marca);
printf("\n NUMERO DE MATRICULA: ");
scanf("%s",(*b)->matricula);
(*b)->izq=(*b)->der=NULL;
}
if(aux > (*b)->idauto)
ingre_auto(&(*b)->der, aux);
if(aux < (*b)->idauto)
ingre_auto(&(*b)->izq, aux);
}



void ingre_cal(calcular **c, int aux)
{
float desc;
if(*c == NULL)
{
(*c)=new(calcular);
(*c)->idcal=aux;
printf("\nCod_cliente:\t");
scanf("%d",&(*c)->idcli);
printf("\nCod_auto:\t");
scanf("%d",&(*c)->idauto);
printf("\n VALOR DEL AUTO: %2.f");
scanf("%2.f",&(*c)->valor);
float valor=(*c)->valor;
printf("\nDESCUENTO: %2.f %");
scanf("%2.f",&desc);
float de=(*c)->desc = (((valor)*desc))/100;
float iva=(*c)->iva=((valor)-(de))*0.12;
(*c)->total=(valor-de+iva);
(*c)->izq=(*c)->der=NULL;
}
if(aux > (*c)->idcal)
ingre_cal(&(*c)->der, aux);
if(aux < (*c)->idcal)
ingre_cal(&(*c)->izq, aux);
}


//----------------funciones de insercion-------------------------

void inser_cli(cliente **p, cliente aux)
{
if(*p==NULL)
{
(*p)=new(cliente);
(*p)->idcli=aux.idcli;
strcpy((*p)->nom, aux.nom);
strcpy((*p)->ape, aux.ape);
strcpy((*p)->ced, aux.ced);
(*p)->izq=(*p)->der=NULL;
}
if(aux.idcli > (*p)->idcli)
inser_cli(&(*p)->der, aux);
if(aux.idcli < (*p)->idcli)
inser_cli(&(*p)->izq, aux);
}



void inser_auto(autos **q, autos aux)
{
if((*q)==NULL)
{
*q=new(autos);
(*q)->idauto=aux.idauto;
(*q)->idcli=aux.idcli;
strcpy((*q)->modelo, aux.modelo);
strcpy((*q)->marca, aux.marca);
strcpy((*q)->matricula, aux.matricula);
(*q)->izq=(*q)->der=NULL;
}
if(aux.idauto<(*q)->idauto)
inser_auto(&(*q)->izq, aux);
if(aux.idauto>(*q)->idauto)
inser_auto(&(*q)->der,aux);
}



void inser_cal(calcular **r, calcular aux)
{
if((*r)==NULL)
{
*r=new(calcular);
(*r)->idcal=aux.idcal;
(*r)->idauto=aux.idauto;
(*r)->idcli=aux.idcli;

(*r)->valor= aux.valor;
(*r)->iva= aux.iva;
(*r)->desc=aux.desc;
(*r)->total=aux.total;
(*r)->izq=(*r)->der=NULL;
}
else if(aux.idcal<(*r)->idcal)
inser_cal(&(*r)->izq,aux);
else if(aux.idcal>(*r)->idcal)
inser_cal(&(*r)->der,aux);
}

//--------------------funciones guardar--------------------------------------


void guar_cli(cliente *a)
{
if(a==NULL)
return;
guar_cli(a->izq);
guar_cli(a->der);
if((ar=fopen("cliente.txt", "a+b")) != NULL)
fwrite(a, sizeof(cliente), 1, ar);
fclose(ar);
}



void guar_auto(autos *b)
{
if(b==NULL)
return;
guar_auto(b->izq);
guar_auto(b->der);
if((ar1=fopen("autos.txt", "a+b")) != NULL)
fwrite(b, sizeof(autos), 1, ar1);
fclose(ar1);
}



void guar_cal(calcular *c)
{
if(c==NULL)
return;
guar_cal(c->izq);
guar_cal(c->der);
if((ar2=fopen("calcular.txt", "a+b")) != NULL)
fwrite(c, sizeof(calcular), 1, ar2);
fclose(ar2);
}

//-------------------------funciones extraer-----------------------


void extr_cli(cliente **arbol_cli)
{
cliente c;
*arbol_cli=NULL;
if((ar=fopen("cliente.txt", "rb"))==NULL)
{
return ;
}
rewind(ar);
while(!feof(ar))
{
fread(&c, sizeof(cliente), 1, ar);
inser_cli(&(*arbol_cli), c);
}
fclose(ar);
}



void extr_auto(autos **arbol_auto)
{
autos d;
*arbol_auto=NULL;
if((ar1=fopen("autos.txt","rb"))==NULL)
{
return ;
}
rewind(ar1);
while(!feof(ar1))
{
fread(&d, sizeof(autos), 1, ar1);
inser_auto(&(*arbol_auto),d);
}
fclose(ar1);
}



void extr_cal(calcular **arbol_cal)
{
calcular d;
*arbol_cal=NULL;
if((ar2=fopen("calcular.txt","rb"))==NULL)
{
return ;
}
rewind(ar2);
while(!feof(ar2))
{
fread(&d, sizeof(calcular), 1, ar2);
inser_cal(&(*arbol_cal), d);
}
fclose(ar2);
}


//--------------funciones mostrar----------------------


void mostrarcli(cliente *a,int auxa)
{
if(a==NULL)
{
printf("no existen datos de cliante para mostrar");
getch();
return;
}
mostrarcli(a->izq,auxa);
if(auxa==a->idcli)
{
printf("\n\n\n< CLIENTE >");
printf("\n\n\n NOMBRE :\t %s", a->nom);
printf("\n\n\n APELLIDO:\t %s", a->ape);
printf("\n\n\n CEDULA:\t %s", a->ced);
mostrarcli(a->der,auxa);
}
else
{
printf("\n\n\nDatos no existen...");
}
mostrarcli(a->der, auxa);

}


void mostrarauto(autos *b,int auxb)
{
if(b==NULL)
{
printf("no existen datos de cliante para mostrar");
getch();
return;
}

mostrarauto(b->izq, auxb);
mostrarauto(b->der, auxb);
if(b->idauto==auxb)
{
printf("\n\n\n< AUTOS >");
printf("\n\nID :\t %d", b->idauto);
printf("\nMODELO:\t %s", b->modelo);
printf("\nMARCA:\t %s",b->marca);
printf("\nMATRICULA:\t %s",b->matricula);


}
}




void mostrarcal(calcular *c,int auxc)
{
if(c==NULL)
{
printf("no existen datos de cliante para mostrar");
getch();
return;
}

mostrarcal(c->izq, auxc);
mostrarcal(c->der, auxc);
if(c->idcal==auxc)
{
printf("\n\n\n< VALORES >");
printf("\n\ID :\t %d", c->idcal);
printf("\nCOSTO DEL AUTO:\t %2.f", c->valor);
printf("\nDESCUENTO:\t %2.f", c->desc);
printf("\nIVA:\t %2.f", c->iva);
printf("\nTOTAL:\t %2.f",c->total);

}

}



void mostrartodo(cliente*a,autos*b,calcular*c)
{
clrscr();
if(a==NULL)
return;
printf("\n\n\n< CLIENTE >");
printf("\n\nID :\t %d", a->idcli);
printf("\n\n\n Nombre :\t %s", a->nom);
printf("\n\n\n Apellido:\t %s", a->ape);
printf("\n\n\n Cedula:\t %s", a->ced);
printf("\n\n\n< AUTO >");
printf("\n\n\nCod :\t %d", b->idauto);
printf("\n\n\nModelo:\t %s", b->modelo);
printf("\n\n\nMarca :\t %s", b->marca);
printf("\n\n\nmatricula:\t %s", b->matricula);
mostrarauto(b,a->idcli);
mostrarcal(c,b->idauto);
}

//------------------funciones modificar-------------------------------------


void modificarcli(cliente *a, int aux)
{
clrscr();
int opcli=0;
char nuevo[20];
if(a!=NULL)
{
modificarcli(a->izq, aux);
if(aux==a->idcli)
{
printf("\n\n\n\n\n < ESCOJA EL DATO DEL CLIENTE A MODIFICAR:>");
printf("\n\n\n<1> NOMBRE");
printf("\n\n\n<2> APELLIDO");
printf("\n\n\n<3> CEDULA");
printf("\n\n\n opcion:\t");
do
{
opcli=getch();
}while(opcli<49 || opcli >51);
switch(opcli)
{
case 49:
printf("\n\n INGRESE NUEVO NOMBRE:\t");
scanf("%s", nuevo);
strcpy(a->nom, nuevo);
getch();
break;

case 50:
printf("\n\n INGRESE NUEVO APELLIDO:\t");
scanf("%s", nuevo);
strcpy(a->ape, nuevo);
getch();
break;

case 51:
printf("\n\n INGRESE NUEVA CEDULA:\t");
scanf("%s", nuevo);
strcpy(a->ced, nuevo);
getch();
break;
}
}
modificarcli(a->der, aux);
}
if((ar=fopen("cliente.txt","wb")) != NULL)
guar_cli(a);
}


void modificarauto(autos *b, int aux)
{

clrscr();
int opauto=0;
char nuevo[20];
if(b!=NULL)
{
modificarauto(b->izq, aux);
if(aux==b->idauto)
{
printf("\n\n\n < QUE DATO DEA MODIFICAR >");
printf("\n\nID :\t %d", b->idauto);
printf("\n<1> MODELO");
printf("\n<2> MARCA");
printf("\n<3> MATRICULA");
printf("\n\n OPCION:\t");
do{
opauto=getch();
}while(opauto<49 || opauto >51);
switch(opauto)
{
case 49:
printf("\n\n INGRESE NUEVO MODELO:\t");
scanf("%s", nuevo);
strcpy(b->modelo, nuevo);
getch();
break;

case 50:
printf("\n\n INGRESE NUEVA MARCA:\t");
scanf("%s", nuevo);
strcpy(b->marca, nuevo);
break;

case 51:
printf("\n\n INGRESE NUEVA MATRICULA DEL AUTO:\t");
scanf("%s", nuevo);
strcpy(b->matricula, nuevo);
break;

}
}
modificarauto(b->der, aux);
}
if((ar1=fopen("autos.txt","wb")) != NULL)
guar_auto(b);
}


void modificarcal(calcular *c, int aux)
{
clrscr();
int opcal=0;
float nuevo;
if(c!=NULL)
{
modificarcal(c->izq, aux);
if(aux==c->idcal)
{
printf("\n\n\n < ESCOJA EL DATO A MODIFICAR >");
printf("\n<1> VALOR DEL AUTO");
printf("\n<2> DESCUENTO");
printf("\n\n OPCION:\t");
do{
opcal=getch();
}while(opcal<49 || opcal >50);
switch(opcal)
{
case 49:
printf("\n\n INGRESE EL NUEVO VALOR:\t");
scanf("%2.f", nuevo);
c->valor=nuevo;
break;
case 50:
printf("\n\n INGRESE EL NUEVO DESCUENTO:\t");
scanf("%2.f", nuevo);
c->desc=nuevo ;
break;
}
}
modificarcal(c->der, aux);
}
if((ar2=fopen("calcular.txt","wb")) != NULL)
guar_cal(c);
}



//-----------------funciones eliminar---------------------------


void eliminarcli(cliente **a, int dato)
{
if(!(*a))
{
printf("\n\n\nCliente no existe");
getch();
}
if(dato < (*a)->idcli)
eliminarcli(&(*a)->izq, dato);
if(dato > (*a)->idcli)
eliminarcli(&(*a)->der, dato);
else
{
cliente *actual=NULL;
actual=*a;
if(actual->izq==NULL)
*a=actual->der;
if(actual->der==NULL)
*a=actual->izq;
else
{
cliente *padre=NULL;
cliente *nodo=NULL;
padre=actual;
nodo=actual->izq;
while(nodo->der)
{
padre=nodo;
nodo=nodo->der;
}
actual->idcli=nodo->idcli;
if(padre==actual)
padre->izq=nodo->izq;
else
padre->der=nodo->der;
actual=nodo;
}
delete(actual);
printf("\n\n\n\n\n\n\nDato eliminado......");
getch();
}
if((ar=fopen("clientes.txt","wb")) != NULL)
guar_cli(*a);
}


void eliminarauto(autos **b, int dato)
{
if(!(*b))
{
printf("\n\n\nAuto no existe....");
getch();
}
if(dato < (*b)->idauto)
eliminarauto(&(*b)->izq, dato);
if(dato > (*b)->idauto)
eliminarauto(&(*b)->der, dato);
else
{
autos *actual=NULL;
actual=*b;
if(actual->izq==NULL)
*b=actual->der;
if(actual->der==NULL)
*b=actual->izq;
else
{
autos *padre=NULL;
autos *nodo=NULL;
padre=actual;
nodo=actual->izq;
while(nodo->der)
{
padre=nodo;
nodo=nodo->der;
}
actual->idauto=nodo->idauto;
if(padre==actual)
padre->izq=nodo->izq;
else
padre->der=nodo->der;
actual=nodo;
}
delete(actual);
printf("\n\n\n\n\n\n\nDato eliminado......");
getch();
}
if((ar1=fopen("autos.txt", "wb")) != NULL)
guar_auto(*b);
}


void eliminarcal(calcular **b, int dato)
{
if(!(*b))
{
printf("\n\n\nValores no existe....");
getch();
}
else if(dato < (*b)->idcal)
eliminarcal(&(*b)->izq, dato);
else if(dato > (*b)->idcal)
eliminarcal(&(*b)->der, dato);
else
{
calcular *actual=NULL;
actual=*b;
if(actual->izq==NULL)
*b=actual->der;
else if(actual->der==NULL)
*b=actual->izq;
else
{
calcular *padre=NULL;
calcular *nodo=NULL;
padre=actual;
nodo=actual->izq;
while(nodo->der)
{
padre=nodo;
nodo=nodo->der;
}
actual->idcal=nodo->idcal;
if(padre==actual)
padre->izq=nodo->izq;
else
padre->der=nodo->der;
actual=nodo;
}
delete(actual);
printf("\n\n\n\n\n\n\nDato eliminado......");
getch();
}
if((ar2=fopen("calcular.txt", "wb")) != NULL)
guar_cal(*b);
}


//-------------------carga-----------------------------------


void carga()
{
int x;
textcolor(GREEN);
gotoxy(33,8);
cprintf("*******PROYECTO*******");
gotoxy(33,12);
delay(100);
cprintf(" Alexander Chalen");
gotoxy(33,16);
delay(100);
cprintf(" Leonardo Toala");
delay(100);
for(x=20; x<=60; x++)
{

gotoxy(33, 20); cprintf("........CARGANDO........");
textcolor(GREEN);
gotoxy(x, 24); cprintf("ÛÛÛÛÛ");
delay(50);
}
clrscr();
}


//----------------------------PROGRAMA PRINCIPAL---------------------


void main(void)
{
clrscr();
carga();
cliente *raiz=NULL, dat;
autos *raiz1=NULL, dat1;
calcular *raiz2=NULL, dat2;
extr_cli(&raiz);
extr_auto(&raiz1);
extr_cal(&raiz2);
int op,op2, ID, ID1;

do{
clrscr();
printf("\n\t\t\t***** VENTA DE AUTOS L.A *****");
printf("\n\n\n\n\t\t\t\t[1] Ingresar");
printf("\n\n\t\t\t\t[2] Mostrar");
printf("\n\n\t\t\t\t[3] Modificar");
printf("\n\n\t\t\t\t[4] Eliminar");
printf("\n\n\t\t\t\t[0] Salir");
printf("\n\n OPCION:\t");
do
{
op=getch();
}while(op<48 || op>53);
switch(op)
{
case 48:
exit (0);
break;

case 49:
clrscr();
printf("\n\t\t\t+++++QUE DESEA INGRESAR+++++");
printf("\n\n\n\n\t\t\t\t[1] CLIENTE");
printf("\n\n\t\t\t\t[2] AUTOS");
printf("\n\n\t\t\t\t[3] VALOR DE AUTOS");
printf("\n\n \t\t\t\t[0]ATRAS\t");
printf("\n\nOPCION:\t");
do{
op2=getch();
}while(op2<49 || op2>51);
switch(op)
{
case 49:
printf("\n\n\n\tDatos del Cliente:\t");
printf("\n\n\n ID_clientes:\t");
scanf("%d", &dat.idcli);
printf("\n\n Nombre :\t");
scanf("%s", dat.nom);
printf("\n\n Apellidos:\t");
scanf("%s", dat.ape);
printf("\n\n Cedula :\t");
scanf("%s", dat.ced);
ingre_cli(&raiz, dat);
guar_cli(raiz);
break;
case 50:
clrscr();
printf("\n\n\n\n\t Datos del Auto\t");
printf("\n\nID AUTO:\t");
scanf("%d", &ID);
ingre_auto(&raiz1, ID);
guar_auto(raiz1);
break;

case 51:
clrscr();
printf("\n\n\n\n\t Valores \t");
printf("\n\nId_Valor\t");
scanf("%d", &ID1);
ingre_cal(&raiz2,ID1);
guar_cal(raiz2);
break;
}
getch();
break;
case 50:
clrscr();
int c=0;
printf("\n\n\n+++++CLIENTE A MOSTRAR++++++\t");
scanf("%d", &c);
mostrartodo(raiz,raiz1,raiz2);
getch();
break;

case 51:
int id=0, op3=0, id2=0, id3=0;
printf("\n\nIngrese el ID del Cliente a buscar:\t");
scanf("%d", &id);
printf("\n<Que datos desea modificar>");
printf("\n[1] Datos cliente");
printf("\n<2> Datos del auto");
printf("\n<3> Valores");
printf("\n\nOPCION:\t");
do{
op3=getch();
}while(op3<49 || op3>51);
switch(op3)
{
case 49:
modificarcli(raiz, id);
printf("\n \n ID del cliente a modificar:\t");
scanf("%d",&id);
modificarcli(raiz, id);
break;
case 50:
mostrarauto(raiz1, id);
printf("\n\nID del auto a modificar:\t");
scanf("%d", &id2);
modificarauto(raiz1,id2);
break;

case 51:
mostrarcal(raiz2, id3);
printf("\n\nID del Valor modificar:\t");
scanf("%d", &id3);
modificarcal(raiz2, id3);

}
getch();
break;

case 52:
int dato=0;
int dato1=0;
int dato2=0;
int op4;
printf("\n\n\nQue desea eliminar ");
printf("\n\n<1> Cliente");
printf("\n\n<2> Auto");
printf("\n\n<3> Valor");

printf("\n\nOPCION:\t");
do{
op4=getch();
}while(op4<49 || op4 >51);
switch(op4)
{
case 49:
printf("\n\n\nId de cliente a eliminar:\t");
scanf("%d", &dato);
eliminarcli(&raiz, dato);
break;
case 50:

printf("\n\n\nId del auto a eliminar:\t");
scanf("%d", &dato1);
eliminarauto(&raiz1, dato1);
break;


case 51:

printf("\n\n\nId del valor a eliminar:\t");
scanf("%d", &dato2);
eliminarcal(&raiz2, dato2);
getch();
}
break;

}
}while(op !=1);
}


perdon por el doble post amigos
 
amigos alguien reviso mi archivo ya lo deje adjuntado por favor
jajaja no soy flojo solo que no revise si podia adjuntar aca en el foro
losiento
 
Hola a tod@s !!!

A ver tengo un problema para leer de fichero y no se como solucionarlo !!

Imaginen que en el fichero tengo esto:
sad12### -34.5666xxxx 99.01 asdasd7asd

Pues como puedo hacer para extraer los numeros (double) tal que quede asi:
12.0, -34.5666, 99.01 y 7.0

No se como hacerlo, lo he intentando con el fgetc pero sin exito :(:(

A ver si me pueden echar una mano y gracias !!:):)
 
Hola, sea como sea te toca tratar ese texto, como una cadena, luego de eso te toca mediente tu ingenio y las caracteristicas del texto que esta guardando, separar la cadena para cada valor. Te quedaria algo como esto :
Código:
StreamReader sr = new StreamReader("C:\\texto.txt"); linea = sr.ReadLine(); while (line != null)      {     //aca linea es una cadena, no se si char* o char[100] o String o como quieras
        //lo importante es que a cada linea debes aplicarle la logica para extraer 
        //lo que requieres, por ejemplo para sacar el primer numero podrias recorrer
        // la cadena hasta encontrar el 1er numero y lo asignas a una subcadena, otro numero
        // se lo agregas a la subcadena (append) y asi hasta encontrar en tu caso el  caracter#
        //algo como :
        
       int contador = 0;
   
        for(int i = 0 ;i<linea.lenght;i++)
        {
           char c = linea.substr(i,i+1); //depronto hace fdalta el (char)
           if(!isNumber(c) )  //si no es numero, aca deberia evaluar tmb el . o , o -
                 { 
                      if(subCadena!="")   contador++; //si ya la subcadena tiene caracteres
                     if(contador<1)  continue; //si el caracter   es un numero o - o . o ,
                     else break;    //si el  caracter es una letra salgo del ciclo

} //
          subCadena = subCadena + c; //no se si esto funcione
        } 

       //aca conviert o la sucadena en un el float con atof()
           float f = atof(subCadena);
          cout<<f;
 //leo la proxima linea     linea = sr.ReadLine();    }

Espero que te sirva de guia. No se si compile o funcione.

Suerte!
 
Hola amigos espero estén muy bien, me pusieron a diseñar un programa que me permita llenar una matriz de forma espiral e imprimirla de igual manera, el programa ya lo hize y se los dejaré al finaliza mi duda, yo el programa lo hize para que funcione como máximo 10 filas x 10 columnas, me gustaría saber como puedo hacer para que el usuario sea el que determine el tamaño del vector, ya que lo definí yo 10x10 como les comentaba.

Programa:
Código:
void llenarmatriz(int mat[10][10],int,int);
void leermatriz(int mat[10][10],int,int);
void leermatriz_xfil(int mat[10][10],int,int);
int main()
{
    int p=0,q=0;
    cout<< "INGRESE EL NUMERO DE FILAS (MAX 10): ";
    cin>> p;
    cout<< "INGRESE EL NUMERO DE COLUMNAS (MAX 10): ";
    cin>> q;
    int matriz[10][10];
    llenarmatriz(matriz,p,q);
    leermatriz(matriz,p,q);
    leermatriz_xfil(matriz,p,q);
 
 
    system ("PAUSE");
    return EXIT_SUCCESS;
}

No se si me entiendan, la idea es definir el tamaño de la matriz con P y Q, espero me puedan dar alguna idea, muchas gracias.
 
cambiar los valores, en este caso, 10, por p y q, o por cualquier variable que necesite.

despues, pedirle al usuario que coloque los valores y hacerlos pasar por parametros.

salu2.
 
hola gente, soy estudiante de primer semestre de sistemas, y necesito solucionar un taller en dev c++, y necesito usar estructuras de repeticion, pero el profesor solo lo explico en pseudo codigo no dio ningun ejemplo en codigo, ya que la clase no alcanzo, y necesito acabar eso rapido, sia me pueden colocar un ejemplo simple en el que se muestre como se determinan los bloques de instrucciones a seguir con while, do-while y for, se los agradezco.
 
compañeros tengo una problema que me ha estado matando desde hace rato,rato y pues quiero saber como heredo un metodo a una clase y no a un objeto por ejemplo
class base{
public:
void metodo();//el que quiero heredar
}
class deribada:base{
void otrometodo();
}
void deribada::eek:trometodo(){metodo()}//a donde lo quiero heredar
bueno mire en un lado y medecia que creando un objeto dentro de la clase pero no me funciono y he buscado y nada que me aclara las dudas
hoo y ahora quien podrá ayudarme?
 

Los últimos temas