Autor
|
Tema: Base de datos c++ (Leído 3,123 veces)
|
ianmorar03
Desconectado
Mensajes: 43
|
Como puedo hacer una base de datos? con la funcion "struct", sin hacer uso de las librerias para c (stdio.h y conio.h) tengo las bases de datos pero ocupo que me imprima todo en un archivo de texto. #include <iostream>
int main(){
struct datos{ int numero; string nombre; };
int cuantos; cout<<"Cuantas personas quiere?"; cin>>cuantos;
datos *data=new datos[cuantos];
for(int i;i<cuantos;i++){ cout<<"Digite su numero de cedula:"<<i; cin>>data[i].numero; cout<<"Digite su nombre:"<<i; cin>>data[i].nombre; } for(int i=0 ; i<cuantos; i++){ cout<<"----------------------------------------------------------------------"<<endl; cout<<"Nombre: "<<data[i].nombre; cout<<"Cedula: "<<data[i].numero; } }
Si digito 2o mas en la cantidad de cuantas personas, quiero que me imprima en un archivo de texto todas las personas que digite, no se como hacerlo, si me pudieran ayudar seria genial.
|
|
« Última modificación: 17 Abril 2016, 10:19 am por ianmorar03 »
|
En línea
|
Aquellos que estan locos como para pensar que pueden cambiar el mundo , son los que lo hacen.
|
|
|
|
ianmorar03
Desconectado
Mensajes: 43
|
Sigue sin funcionarme, solo me imprime el ultimo nombre y cedula guardada...
|
|
|
En línea
|
Aquellos que estan locos como para pensar que pueden cambiar el mundo , son los que lo hacen.
|
|
|
|
ianmorar03
Desconectado
Mensajes: 43
|
pon el nuevo código.
struct datos{ int numero; string nombre; };
int cuantos; cout<<"Cuantas personas quiere?"; cin>>cuantos;
datos *data=new datos[cuantos];
for(int i=0 ; i<cuantos ; i++){ cout<<"Digite su numero de cedula:"<<i; cin>>data[i].numero; cout<<"Digite su nombre:"<<i; cin>>data[i].nombre; } for(int i=0 ; i<cuantos; i++){ fstream file("datos.txt"); file <<"nombre: "; file <<data[i].nombre<<endl; file<<"cedula: "; file <<data[i].numero<<endl; file.close(); } }
|
|
|
En línea
|
Aquellos que estan locos como para pensar que pueden cambiar el mundo , son los que lo hacen.
|
|
|
Gunhack
Desconectado
Mensajes: 42
|
El ciclo donde guardas los archivos está mal... for(int i=0 ; i<cuantos; i++){ fstream file("datos.txt"); file <<"nombre: "; file <<data[i].nombre<<endl; file<<"cedula: "; file <<data[i].numero<<endl; file.close(); }
Debe de ser así... a) Primero se declara el fstream fuera del ciclo, si lo pones dentro es como si la inicializaras la variable en cada iteración. b)Después, si solo quieres guardar los datos para volver a cargarlos luego, solamente debes de guardar el dato en sí, sin ninguna etiqueta antes ("nombre: " y cosas así...), si lo que quieres es crear una salida formateada si debe llevar las etiquetas. c) Cuando pones "file.close();" estás cerando el buffer de salida, osea cierras el archivo, y si lo haces en cada iteración... pues bueno, como lo volvias a crear, solamente estabas abriendo y cerrando el mismo archivo para guardar un dato por iteración, al final solo se mostraría el ultimo dato ingresado. fstream file("datos.txt"); //a) for(int i=0 ; i<cuantos; i++){ //b) file <<data[i].nombre<<endl; file <<data[i].numero<<endl; } file.close();//c)
|
|
|
En línea
|
|
|
|
ianmorar03
Desconectado
Mensajes: 43
|
El ciclo donde guardas los archivos está mal... for(int i=0 ; i<cuantos; i++){ fstream file("datos.txt"); file <<"nombre: "; file <<data[i].nombre<<endl; file<<"cedula: "; file <<data[i].numero<<endl; file.close(); }
Debe de ser así... a) Primero se declara el fstream fuera del ciclo, si lo pones dentro es como si la inicializaras la variable en cada iteración. b)Después, si solo quieres guardar los datos para volver a cargarlos luego, solamente debes de guardar el dato en sí, sin ninguna etiqueta antes ("nombre: " y cosas así...), si lo que quieres es crear una salida formateada si debe llevar las etiquetas. c) Cuando pones "file.close();" estás cerando el buffer de salida, osea cierras el archivo, y si lo haces en cada iteración... pues bueno, como lo volvias a crear, solamente estabas abriendo y cerrando el mismo archivo para guardar un dato por iteración, al final solo se mostraría el ultimo dato ingresado. fstream file("datos.txt"); //a) for(int i=0 ; i<cuantos; i++){ //b) file <<data[i].nombre<<endl; file <<data[i].numero<<endl; } file.close();//c)
@gunhack gracias por el codigo, ahora ya se como hacerlo PURA VIDA!
|
|
|
En línea
|
Aquellos que estan locos como para pensar que pueden cambiar el mundo , son los que lo hacen.
|
|
|
HardForo
Desconectado
Mensajes: 219
HardForo.com
|
.
|
|
« Última modificación: 20 Abril 2016, 18:16 pm por boctulus »
|
En línea
|
HardForo: foro de Hardware y programación Se buscan Mods y colaboradores *
|
|
|
Orubatosu
|
Si piensas hacer una base de datos en C++, sería interesante que mirases las bibliotecas de la STD, donde hay contenedores que te facilitarían buena parte del trabajo.
Por ejemplo la clase VECTOR, LIST y MAP.
Sobre todo este último, ya que tienes "hecho" el indexar a mucha velocidad, el acceder a elementos, borrarlos, insertar, etc.
Vamos, que para que "reinventar la rueda" si eso ya está hecho
|
|
|
En línea
|
"When People called me freak, i close my eyes and laughed, because they are blinded to happiness" Hideto Matsumoto 1964-1998
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
como conectar una base de datos acce con DAO y visualizar los datos en un dbgrid
Programación Visual Basic
|
ELGRANSOLRAC
|
3
|
6,183
|
7 Junio 2005, 15:21 pm
por ELGRANSOLRAC
|
|
|
Insertar datos de dos campos hidden y un campo de texto en la base de datos.
Desarrollo Web
|
70N1
|
4
|
4,603
|
6 Octubre 2012, 20:22 pm
por RevangelyonX
|
|
|
AYUDA, VALIDAR DATOS Y EVITAR INYECCION EN FORMULARIO A BASE DE DATOS
Desarrollo Web
|
antonioska
|
4
|
6,403
|
1 Abril 2013, 00:39 am
por antonioska
|
|
|
como puedo pasar los datos de un jtable a una base de datos access
Java
|
jclracing
|
1
|
5,850
|
2 Julio 2013, 23:27 pm
por 1mpuls0
|
|
|
Guardar datos desde TextBox a base de datos con Visual Studio 2010
Programación Visual Basic
|
fezaca
|
2
|
6,381
|
1 Abril 2015, 20:41 pm
por fezaca
|
|