Foros del Web » Programación para mayores de 30 ;) » C/C++ »

AYUDA EN VISUAL C++ CON ficheros .TXT

Estas en el tema de AYUDA EN VISUAL C++ CON ficheros .TXT en el foro de C/C++ en Foros del Web. HOLA TENGO QUE ENTREGAR UN PROYECTO FINAL PARA ESTE SABADO 20 DE JUNIO 2010 QUE ME CREE COMO TRES FICHEROS, PERO TENGO MUY POCO TIEMPO ...
  #1 (permalink)  
Antiguo 18/06/2010, 00:58
 
Fecha de Ingreso: junio-2010
Mensajes: 4
Antigüedad: 13 años, 10 meses
Puntos: 0
Pregunta AYUDA EN VISUAL C++ CON ficheros .TXT

HOLA TENGO QUE ENTREGAR UN PROYECTO FINAL PARA ESTE SABADO 20 DE JUNIO 2010 QUE ME CREE COMO TRES FICHEROS, PERO TENGO MUY POCO TIEMPO SI ALGUEN ME PUEDE AYUDAR TENGO ESTE CODIGO, pero me tira estos errores


C:\Documents and Settings\Administrador\Escritorio\datos\datos\dato s.cpp(22) : error C2146: syntax error : missing ';' before identifier 'n'

C:\Documents and Settings\Administrador\Escritorio\datos\datos\dato s.cpp(22) : fatal error C1004: unexpected end of file found

micodigo es este---- ESTOY TRABAJANDO EN VISUAL C++ 6.0 por favor si alguien me ayudaria se lo agradeceria.............. soy nuevo necesito su ayuda.... gracias





#include "stdafx.h"
#include <iostream.h>
#include <stdlib.h>
#include <string.h>
#include <fstream>

struct datos
{
char nombre[50];
int telefono;
char direccion[50];
char email[50];
int valido;
int valido2; 1706887114
};

int menu()

int n=0;
system("cls");
cout<<endl<<endl;
cout<<" ==========================================="<<endl ;
cout<<" || AGENDA PERSONAL ||"<<endl;
cout<<" ==========================================="<<endl ;
cout<<" || 1. AGREGAR NUEVO REGISTRO ||"<<endl;
cout<<" || 2. BUSCAR REGISTRO ||"<<endl;
cout<<" || 3. MOSTRAR TODOS LOS REGISTROS ||"<<endl;
cout<<" || 4. SALIR ||"<<endl;
cout<<" ==========================================="<<endl <<endl;
while ((n<1) || (n>4))
{ cout<<" Introduce un numero de las opciones listadas arriba [1-4]: "; cin>>n; }
cout<<endl;
return n;
}

void agregar(struct datos d)
{
char na='s';
while (na=='s')
{
char nn='x';
system ("cls");

cout<<"Nombre: "; cin>> d.nombre;
cout<<"Telefono: "; cin>> d.telefono;
cout<<"Direccion: "; cin>> d.direccion;
cout<<"Email: "; cin>> d.email; cout<<endl;
d.valido=1;
d.valido2=1706887114; registros


while ((nn!='s') && (nn!='n'))
{ cout<<endl<<"Deseas agregar el nuevo registro? [s-n]: "; cin>>nn; }

//agregamos
if (nn=='s')
{
ofstream reg("registros.dat", ios::app | ios::binary);

if(!reg) /
{ cout <<"No se puede abrir el fichero."; }
reg.seekp(0, ios::end);
reg.write((char *) &d, sizeof(d));
reg.close(); //cerramos el archivo
cout<<endl<<"Registro agregado exitosamente"<<endl;
system("pause");
}
else
{

strcpy(d.nombre,"");
d.telefono=0;
strcpy(d.direccion,"");
strcpy(d.email,"");
d.valido=0;
d.valido2=0;
cout<<endl<<"El Registro NO fue agregado"<<endl;
system("pause");
}
na='x';
while ((na!='s') && (na!='n'))
{ cout<<endl<<endl<<"Deseas agregar un registro nuevo? [s-n]: "; cin>>na; }
}//endwhile
}

void modificar(struct datos d, int nm)
{
char nnm='x';
system ("cls");

cout<<"Nombre: "; cin>> d.nombre;
cout<<"Telefono: "; cin>> d.telefono;
cout<<"Direccion: "; cin>> d.direccion;
cout<<"Email: "; cin>> d.email; cout<<endl;
d.valido=1; //decimos ke si existe
d.valido2=1706887114;


while ((nnm!='s') && (nnm!='n'))
{ cout<<endl<<"Deseas modificar este registro? [s-n]: "; cin>>nnm; }

//agregamos
if (nnm=='s')
{
ofstream reg("registros.dat", ios::out | ios::binary); /

if(!reg) //si no se pudo abrir el archivo
{ cout <<"No se puede abrir el fichero."; }
reg.seekp((nm-1)*sizeof(d));

reg.write((char *) &d, sizeof(d));
reg.close(); //cerramos el archivo
cout<<endl<<"Registro modificado exitosamente"<<endl;
}
else
{

strcpy(d.nombre,"");
d.telefono=0;
strcpy(d.direccion,"");
strcpy(d.email,"");
d.valido=1;
d.valido2=0;
cout<<endl<<"El Registro NO fue modificado"<<endl;
}
system("pause");
}

void eliminar(struct datos d, int ne)
{
system ("cls"); //borramos pantalla
d.valido=0; //modificamos "valid0" del struct para decir ke ese registro no sera tomado en cuenta
d.valido2=1706887114; //agregamos nuestra garantia de registro

//ahora actualizamos el registro
ofstream reg("registros.dat", ios::out | ios::binary); //activamos el archivo en modo de escritura (creamos el objeto 'reg')
if(!reg) //si no se pudo abrir el archivo
{ cout <<"No se puede abrir el fichero."<<endl; system("pause");}
reg.seekp((ne-1)*sizeof(d)); //colocamos el apuntador en la posicion inicial del registro a modificar
reg.write((char *) &d, sizeof(d)); //escribimos el nuevo registro
reg.close(); //cerramos el archivo
cout<<endl<<"Registro eliminado"<<endl;
system("pause");
}

void buscar(struct datos d)
{
int nb1=0, nb=-2; //nb1=variable auxiliar para saber si kiere volver a buskar o salir nb=variable ke guarda el #de registro buskado
while (nb1<4)
{
if (nb1==2)
{ modificar(d, nb); }
else
{
if (nb1==3)
{ eliminar(d, nb); }
}
system("cls"); //borramos pantalla
int nb=-2;
while (nb<0)
{ cout<<"Introduce el registro a buscar [0 para salir]: "; cin>>nb; }
if (nb!=0) //si kiere buskar...
{
ifstream reg("registros.dat", ios::in | ios::binary); //activa el archivo en modo de lectura (creamos el objeto 'reg')
reg.seekg((nb-1)*sizeof(d)); //colocamos el apuntador en la posicion inicial del registro encontrado
reg.read((char *) &d, sizeof d); //leemos el registro encontrado
//verificamos que el registro es correcto
if ((d.valido==1) && (d.valido2==1706887114))
{
cout<<endl<<endl<<"--------Registro encontrado--------"<<endl;
cout<<"Nombre: "<<d.nombre<<endl<<"Telefono: "<<d.telefono<<endl<<"Direccion: "<<d.direccion<<endl<<"Email: "<<d.email<<endl<<endl;
cout<<endl; //imprimimos menu de opciones
cout<<" ================================"<<endl;
cout<<" || OPCIONES ||"<<endl;
cout<<" ================================"<<endl;
cout<<" || 1. NUEVA BUSQUEDA ||"<<endl;
cout<<" || 2. MODIFICAR REGISTRO ||"<<endl;
cout<<" || 3. ELIMINAR REGISTRO ||"<<endl;
cout<<" || 4. SALIR ||"<<endl;
cout<<" ================================"<<endl<<endl;
nb1=0;
while ((nb1<1) || (nb1>4))
{ cout<<" Introduce un numero de las opciones listadas arriba [1-4]: "; cin>>nb1; }
cout<<endl;
}//endif ((d.valido==1) && (d.valido2==1706887114))
else //si el registro encontrado no es correcto
{
cout<<endl<<"El registro buscado no existe"<<endl;
system("pause");
nb1=1;
}
}//endif (nb!=0)
else //si ya se kiere salir
{ nb1=4; } //igualamos la bandera a 4 para ke se salga
} //endwhile
}

void mostrar(struct datos d)
{
int nb11=0,con=0,nme=0,bandera=0; //nb1=variable auxiliar para saber si kiere volver a buskar o salir nb=variable ke guarda el #de registro buskado
while (nb11<3)
{
if (nb11==1)
{ modificar(d, nme); }
else
{
if (nb11==2)
{ eliminar(d, nme); }
}
system("cls");
ifstream reg("registros.dat", ios::in | ios::binary); /
con=0;
bandera=0;
while (reg && !reg.eof())
{
reg.seekg((con)*sizeof(d));
reg.read((char *) &d, sizeof d);
con++;
//verificamos que el registro es correcto
if ((d.valido==1) && (d.valido2==1706887114))
{
bandera=1;
cout<<endl<<"--------Registro "<<con<<"--------"<<endl;
cout<<"Nombre: "<<d.nombre<<endl<<"Telefono: "<<d.telefono<<endl<<"Direccion: "<<d.direccion<<endl<<"Email: "<<d.email<<endl<<endl;
}//endif
}//endwhile
if (bandera==1)
{
cout<<endl<<endl;
cout<<" ================================"<<endl;
cout<<" || OPCIONES ||"<<endl;
cout<<" ================================"<<endl;
cout<<" || 1. MODIFICAR REGISTRO ||"<<endl;
cout<<" || 2. ELIMINAR REGISTRO ||"<<endl;
cout<<" || 3. SALIR ||"<<endl;
cout<<" ================================"<<endl<<endl;
nb11=0;
//preguntamos por ke opcion kiere realizar
while ((nb11<1) || (nb11>3))
{ cout<<" Introduce un numero de las opciones listadas arriba [1-4]: "; cin>>nb11; }
nme=0;
while ((nme<1) && (nb11<3))
{ cout<<" Introduce el numero del registro: "; cin>>nme; }
}//endif bandera=1
else
{ cout<<"No existen registros!"<<endl; system("pause"); nb11=3;}
} //endwhile
}

int main()
{
struct datos d;
int x=0;
fstream ("registros.dat", ios::out | ios::in | ios::binary);
int n=0,band=0;
while (band==0)
{
n=menu();
switch (n)
{
case 1: agregar(d); break;
case 2: buscar(d); break;
case 3: mostrar(d); break;
case 4: band=1; break;
}
}
system("PAUSE");
return 0;
}
  #2 (permalink)  
Antiguo 18/06/2010, 18:05
 
Fecha de Ingreso: enero-2008
Mensajes: 229
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: AYUDA EN VISUAL C++ CON ficheros .TXT

es un error muy basico, creo k no pusiste antencion a tu profe cuando te explico las cosas basicas...
  #3 (permalink)  
Antiguo 18/06/2010, 19:44
 
Fecha de Ingreso: junio-2010
Mensajes: 4
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: AYUDA EN VISUAL C++ CON ficheros .TXT

SI no vas ayudar no te metas al foro......... fue creado para responder dudas y preguntar no para criticar............
  #4 (permalink)  
Antiguo 18/06/2010, 20:20
 
Fecha de Ingreso: enero-2008
Mensajes: 229
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: AYUDA EN VISUAL C++ CON ficheros .TXT

mira amigo tus errores q tienes es demasiados obvios, kien vea se dara cuenta k ni siquiera sabes lo basico para programar en C/C++. o es eso o quieres q no nosostros actuemos como tu compilador. Vamos ni siquiera los errores que te marca un compilador los has corregido o si?. Compila tu codigo, depuralo y cuando hayas batallado por un rato entoces ven a este foro... aqui no estamos para los q nisiquieran son capaces de dedicarle un poco d tiempo y vienen a ki para k nosotros le resolvamos la vida
  #5 (permalink)  
Antiguo 18/06/2010, 22:03
 
Fecha de Ingreso: junio-2010
Mensajes: 4
Antigüedad: 13 años, 10 meses
Puntos: 0
De acuerdo Respuesta: AYUDA EN VISUAL C++ CON ficheros .TXT

Mira prodran ser errores basicos, fui cincero en mi mensaje "soy nuevo en c++ " tu podras ser experto en c++, talvez tienes un poco de EGO... por lo que sabes,
pero creo que tu cuando iniciastes en c++ hubo un tiempo que tampoco sabias lo basico..... y necesitas ayuda..... o que alguein te aclare las dudas...... si tu dominas c++ muy bien te felicito sinceramente...... y disculpa..... si te ofendi con mi respuesta anterior..... suerte en el foro......
  #6 (permalink)  
Antiguo 18/06/2010, 22:24
 
Fecha de Ingreso: enero-2008
Mensajes: 229
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: AYUDA EN VISUAL C++ CON ficheros .TXT

te voy a demostrar por que se k ni siquiera te le has dedicado tiempo a ver el por que de tus errrores( cuando yo aprendi a programar no existian estos tipos de foros o almeno estaban tan difunididos, y en algunos casos debia de pasar horas tratando de encotrar el porque de mis errores y corregirlos):
Código C++:
Ver original
  1. int menu()
  2.  
  3. int n=0;
  4. system("cls");
  5. cout<<endl<<endl;
como debes de saber para declarar una funcion la funcion debe estar entre llaves entoces despues del int menu()debes colocar {

en la estructura
Código C:
Ver original
  1. struct datos
  2. {
  3. char nombre[50];
  4. int telefono;
  5. char direccion[50];
  6. char email[50];
  7. int valido;
  8. int valido2; 1706887114
  9. };
  10. puese ver que tienes escrito 1706887114, lo cual es no es valido.
en la linea 62 no puedes poner
if(!reg) /
ya que / de seguro te marcara un error para poner un comentario son //
ves ese tipo de cosas basicas que el profe te debio haber enseñado. Si no me crees preguntale a un compañero tuyo y vera que hasta el me dara la razon.

Etiquetas: ficheros, txt, visual
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:43.