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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


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

Desconectado Desconectado

Mensajes: 11



Ver Perfil
Fscanf en lenguaje C
« en: 27 Marzo 2018, 04:31 am »

Buenas noches... Mi problema es el siguiente
tengo un archivo de la siguiente manera
(id)           (0 o 1) ----> esto no esta en el archivo
6058267724  1
7594333595  1
5145356802  0
7756030586  0
2837767613  1

y quiero agarrar los id que tienen el valor 1, pero quiero agarrar es el id, el numero uno no lo quiero, busco almacenarlo en una matriz (bueno en el algoritmo que les muestro estoy usando un printf para asegurarme que estoy cogiendo los id)

Este codigo me regresa otros numeros que no son los del archivo y algunos traen el "-" a su izquierda,y por ejemplo si son 5 id con el numero 1, me imprime solo cuatro...
 
Código
  1. while (!feof(archivo_uno)){
  2.  
  3. fscanf (archivo_uno," %d%d",&cuentaf,&cerouno);
  4.  
  5. if ( cerouno == 1 ){
  6.  
  7. printf ( "\n cuenta: %d", cuentaf);
  8. }
  9. }
  10.  

INTENTE ASI PERO SOLO ME IMPRIME LOS UNO
Código
  1. while (!feof(archivo_uno)){
  2.  
  3. fscanf (archivo_uno," %d",&cuentaf);
  4.  
  5. if ( cuentaf == 1 ){
  6.  
  7. printf ( "\n cuenta: %d", cuentaf);
  8. }
  9. }
  10.  



En línea

Kenji-chan

Desconectado Desconectado

Mensajes: 104


Ver Perfil
Re: Fscanf en lenguaje C
« Respuesta #1 en: 27 Marzo 2018, 22:26 pm »

veras tu error es que estas usando un tipo de dato int para almacenar un numero que sobre pasa la capacidad y el tipo de dato int solo almacena 2 bytes si la arquitectura de tu maquina es de x32 o 4 bytes si es de x64,

capacidad de almacenamiento de un int
2 bytes -32768 a 32767
4 bytes -2147483648 to 2147483647

6058267724 -> lo que intentas almacenar
2147483647 -> capacidad de un int x64

como ves el int es mucho mas pequeño de lo que le intentas almacenar


En línea

grossgore

Desconectado Desconectado

Mensajes: 11



Ver Perfil
Re: Fscanf en lenguaje C
« Respuesta #2 en: 28 Marzo 2018, 01:27 am »

Vale perfecto, me di cuenta de ese error en el transcurso del dia... pero que tipo de dato  podria usar ??? intente con double y un long y me pasa igual... la unica manera que me los imprime correctamente es con char y no los quiero en un char :'v
osea de esta manera 
Código
  1. char  id [100];
  2. int cerouno;
  3.  
  4. while (!feof(archivo_uno)){
  5.  
  6. fscanf (archivo_uno,"\t%s \t%d",id,&cerouno);
  7.  
  8.  
  9. if ( cerouno == 1 ){
  10.               printf ( "cuenta:%s \n", id);
  11. }
  12. }
  13.  
  14.  

:'v
En línea

Kenji-chan

Desconectado Desconectado

Mensajes: 104


Ver Perfil
Re: Fscanf en lenguaje C
« Respuesta #3 en: 28 Marzo 2018, 01:39 am »

a mi me funciona bien con double

Código
  1. #include <stdio.h>
  2.  
  3. int main(int argc, char *argv[]) {
  4. int estado = 0;
  5. double id;
  6. FILE* fp;
  7.  
  8. fp = fopen("texto.txt", "r");
  9.  
  10. while(!feof(fp)){
  11. fscanf(fp, "%lf %d", &id, &estado);
  12. if(estado == 1){
  13. fprintf(stdout, "ID: %.0lf\n", id);
  14. }
  15. estado = 0;
  16. }
  17.  
  18. fclose(fp);
  19.  
  20. return 0;
  21. }
  22.  
En línea

grossgore

Desconectado Desconectado

Mensajes: 11



Ver Perfil
Re: Fscanf en lenguaje C
« Respuesta #4 en: 28 Marzo 2018, 02:04 am »

A ya vi mi error, vale que retrasado soy jajajaja xD mi error estaba (no se como se le dice a eso pero son los porcientos que van dentro del printf o scanf que usas para definir el tipo de variable)o eso creo UwU... me fuiste de gran ayuda xD GRACIAS (y)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Consulta fscanf leer nueva linea
Programación C/C++
casidus 7 4,297 Último mensaje 15 Febrero 2014, 12:16 pm
por casidus
Verificar que se lee con fscanf
Programación C/C++
bastri 4 3,007 Último mensaje 11 Junio 2015, 17:04 pm
por rir3760
[DUDA] Tengo un problema con fscanf de un archivo
Programación C/C++
LaPela 0 1,374 Último mensaje 8 Octubre 2015, 00:28 am
por LaPela
feof y fscanf
Programación C/C++
fafafa01 3 2,731 Último mensaje 21 Mayo 2016, 08:27 am
por class_OpenGL
[Función fscanf]
Programación C/C++
Apazche 4 2,845 Último mensaje 20 Junio 2018, 15:42 pm
por dijsktra
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines