elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  consulta lectura desde archivo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: consulta lectura desde archivo  (Leído 2,667 veces)
oskrg55

Desconectado Desconectado

Mensajes: 7


Ver Perfil
consulta lectura desde archivo
« en: 12 Agosto 2015, 05:17 am »

hola gente tengo un problema con un codigo deseo leer codigo nombre y cedula imprimir eso digamos 234 mario mora 304060
 pero sale esto cedula 234 NOMBRE mario mora 2031 cedula 345
osea nada que ver digamos el 345 lo coge del siguiente usuario que estara mal aca codigo c++ aparte nombre es un char de 50

Código
  1. void registros()
  2. {
  3. system ("cls");
  4.    ifstream entradaRg("regEC.txt",ios::in);
  5. cout << "\t\t\tREGISTROS DEL SISTEMA...\n"<<endl;
  6. cout<< "________________________________________________________________________________\n"<<endl;
  7.    if(!entradaRg)
  8.    {
  9.        cerr<<"\t\t\aERROR!!! NO SE PUDO ABRIR EL ARCHIVO O NO EXISTEN REGISTROS\n";
  10.        exit(1);
  11.    }
  12. while (!entradaRg.eof())
  13. {
  14.  if(!entradaRg)
  15.    {
  16.        break;
  17.    }
  18.     entradaRg>>cedula;
  19.    entradaRg.getline(nombre,50);
  20.    entradaRg>>codigo;
  21.  cout << "\t\t\t\tCEDULA  [ "<<cedula<<" ]\n\t\t\t\tNOMBRE  [ "<<nombre<<" ]\n\t\t\tCODIGO DE CARTON[ "<< codigo<<" ]"<<endl;
  22.    cout<< "________________________________________________________________________________\n"<<endl;
  23.    }
  24. entradaRg.close();
  25. cout <<"Regresando al menu principal"<<endl;
  26. cout <<endl;
  27. system("pause");
  28. main();
  29. }
se agradece la ayuda


Mod: Los códigos deben ir en etiquetas GeSHi, segundo aviso


« Última modificación: 12 Agosto 2015, 05:29 am por engel lex » En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: consulta lectura desde archivo
« Respuesta #1 en: 12 Agosto 2015, 14:01 pm »

Código
  1. entradaRg.getline(nombre,50);

Eso lee 50 caracteres, hasta el fin de linea. Lo que implica, que salvo que casualmente el nombre tenga 50 caracteres (contando espacios), va a leerlo todo.

Lo que debes hacer es, primero, leer la linea entera:

Código
  1. string linea;
  2. getline(entradaRg, linea);

Una vez tengas la linea completa en la string, vas separando sus componentes. Por ejemplo, para sacar el primer número, harías:
Código
  1. size_t posicion;
  2. posicion = linea.find(' '); // Buscas el primer espacio, empezando desde el principio
  3. string cedulaStr = linea.substr(0,posicion); // Coge una subcadena que empieza en 0, y coge X caracteres
  4.                                                              // En este caso coincide que la posicion del espacio es el numero de caracteres
  5. cedula = stoi(cedulaStr); // Convierte la cadena numérica a un entero

Si tienes dudas de alguna función, puedes buscar en esta página. Por ejemplo, aquí ves stoi: http://www.cplusplus.com/reference/string/stoi/

Como el nombre supongo que no sabes cuantas palabras puede ser, deberías buscar primero la última parte, el código. Para ello, puedes usar rfind():

Código
  1. posicion = linea.rfind(' ');
  2. codigo = stoi( linea.substr(posicion+1) );
rfind() empieza a buscar el caracter o cadena desde el final.
Por cierto, find() y rfind() te retornan el índice de la primera ocurrencia en la string.
El segundo parámetro de find() y rfind() es opcional, y es el índice desde el que quieres empezar a buscar.


En línea

oskrg55

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: consulta lectura desde archivo
« Respuesta #2 en: 12 Agosto 2015, 20:40 pm »

Esta genial ese codigo pero no habrá forma de hacerlo con caracteres esq es la parte final del programa y tendría q cambiar toda la estructura :( mas bien gracias perdón por la molestia
En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: consulta lectura desde archivo
« Respuesta #3 en: 12 Agosto 2015, 22:26 pm »

Puedes transformar una cadena a string:
Código
  1. string str(cadena); // cadena: char o char[]
  2. // O...
  3. string str = string(cadena);

A ver. Find, substr, son funciones que puedes reproducir para cadenas, pero convirtiendo a string te ahorras mucho
En línea

oskrg55

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: consulta lectura desde archivo
« Respuesta #4 en: 12 Agosto 2015, 23:14 pm »

Gracias vamos a ver como sale :)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
foto lectura, y lectura veloz, scanning y otros metodos de lectura rapida....
Foro Libre
Kase 3 13,005 Último mensaje 4 Febrero 2014, 08:47 am
por camilo_
problema lectura de archivo
Programación C/C++
javahat 6 4,042 Último mensaje 22 Mayo 2010, 01:04 am
por nicolasblues86
Archivo de solo lectura
.NET (C#, VB.NET, ASP)
.:Weeds:. 3 6,776 Último mensaje 26 Febrero 2011, 12:32 pm
por bitarray
[C++] Consulta - Usar entrada estándar o desde un archivo
Programación C/C++
Lauta 8 4,456 Último mensaje 7 Octubre 2012, 08:02 am
por Lauta
lectura de archivo log
Programación C/C++
falconez 3 2,194 Último mensaje 18 Enero 2014, 02:28 am
por falconez
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines