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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


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

Desconectado Desconectado

Mensajes: 260

"Piensa por ti mismo"Antifascismo Antiracismo


Ver Perfil
Error en codigo C
« en: 13 Diciembre 2010, 17:38 pm »

Código
  1. #include <stdio.h>
  2. main() {
  3. printf("¿Número de carácteres?\n");
  4. int num;
  5. scanf("%i\n",&num);
  6. char vector[num];
  7. int c;
  8. FILE *comprob;
  9. comprob = fopen("archivo.txt","rb");
  10. if (comprob==NULL) {
  11. printf("No existe el archivo\n"); }
  12. else {
  13. int i;
  14. for (i=0; i<num; i++) {
  15.          c = fgetc(comprob);
  16.          vector[i]=c;}
  17.  
  18. vector[i] = '\0';
  19. fclose(comprob);
  20. int a;
  21. for (a=0; a<num; a++) {
  22.          printf("%c",vector[a]);} }
  23. exit 0;}

No da errores al compilar pero no muestra lo que contiene el archivo ¿ Por que ?


En línea






Se busca sabio para intercambio:
Todo lo que se por la mitad de lo que desconozco.
Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: Error en codigo C
« Respuesta #1 en: 13 Diciembre 2010, 18:37 pm »

Intentadlo así,
Código
  1. #include <stdio.h>
  2.  
  3. int main(){
  4.    int num;
  5.    char vector[num];
  6.    int c;
  7.    FILE *comprob;
  8.  
  9.    printf("Número de carácteres?\n");
  10.    scanf("%i",&num);
  11.    comprob = fopen("C:\PoC.txt", "rb");
  12.    if (comprob==NULL){
  13.       printf("No existe el archivo\n");
  14.    }else{
  15.          int i;
  16.          for (i=0; i<num; i++) {
  17.              c = fgetc(comprob);
  18.            vector[i] = c;
  19.          }
  20.          vector[i] = '\0';
  21.          fclose(comprob);
  22.          for (i=0; i<num; i++){
  23.              printf("%c\n", vector[i]);
  24.          }
  25.    }
  26.    system("PAUSE");
  27.    return 0;
  28. }

Resultado,
Código
  1. N·mero de carßcteres?
  2. 28
  3. Hola como estas - SHELL ROOT


En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
Søra

Desconectado Desconectado

Mensajes: 260

"Piensa por ti mismo"Antifascismo Antiracismo


Ver Perfil
Re: Error en codigo C
« Respuesta #2 en: 13 Diciembre 2010, 18:56 pm »

me da fallo de segmentacion :O
En línea






Se busca sabio para intercambio:
Todo lo que se por la mitad de lo que desconozco.
Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: Error en codigo C
« Respuesta #3 en: 13 Diciembre 2010, 19:37 pm »

No se, estoy usando Dev-C++, entonces en la siguiente linea de tú código,
Código
  1. #include <stdio.h>
  2. main() {
  3. printf("¿Número de carácteres?\n");
  4. int num;
  5. scanf("%i\n",&num);
  6. char vector[num];
  7. int c;
  8. FILE *comprob;
  9. comprob = fopen("archivo.txt","rb");
  10. if (comprob==NULL) {
  11. printf("No existe el archivo\n"); }
  12. else {
  13. int i;
  14. for (i=0; i<num; i++) {
  15.          c = fgetc(comprob);
  16.          vector[i]=c;}
  17.  
  18. vector[i] = '\0';
  19. fclose(comprob);
  20. int a;
  21. for (a=0; a<num; a++) {
  22.          printf("%c",vector[a]);} }
  23. exit 0;}

Quitale el \n al scanf así,
Código
  1. scanf("%i", &num);
En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
Garfield07


Desconectado Desconectado

Mensajes: 1.121


¡Este año voy a por todas! JMJ 2011


Ver Perfil WWW
Re: Error en codigo C
« Respuesta #4 en: 13 Diciembre 2010, 19:46 pm »

Código
  1. #include <stdio.h>
  2.  
  3. int main(int argc, char *argv [])
  4. {
  5. if (argc != 3)
  6. {
  7. printf ("Use: %s <file> <chars>\n\n", argv [0]);
  8. return 1;
  9. }
  10.  
  11. int i, c;
  12. char frase [atoi (argv [2])];
  13.  
  14. FILE *fp = fopen(argv [1],"r");
  15. if (fp == NULL)
  16. {
  17. printf("No existe el archivo\n");
  18. return 1;
  19. }
  20. for (i = 1; i <= atoi (argv [2]); i++)
  21. {
  22. c = fgetc(fp);
  23. frase[i] = c;
  24. }
  25. fclose (fp);
  26.  
  27. for (i = 1; i <= atoi(argv [2]); i++)
  28. printf("%c", frase[i]);
  29.  
  30. return 0;
  31. }
  32.  

Vaya, algunos fallos habia...
tmb ay aqui de omision en este, pero el tiempo...

fff sora se te da mejor la seguridad, de lo poco que se de ti...

PD: No tiene nada que ver. %i es igual que %d en Dev, pero es siempre mejor %d
En línea



* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente.
* No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado.
* Si compila esta bien, si arranca es perfecto.

¡Wiki elhacker.net!
Un saludo
Søra

Desconectado Desconectado

Mensajes: 260

"Piensa por ti mismo"Antifascismo Antiracismo


Ver Perfil
Re: Error en codigo C
« Respuesta #5 en: 13 Diciembre 2010, 20:00 pm »

Como tu decias shell root me fallaba el \n en el scanf graciass.
Si jaaja puede que se mediera algo mejor la seguridad pero aun asi me gusta programar xDD
ademas en temas de seguridad no consigo avanzar :( bueno dejo el code resuelto porsi a alguien le sirve:

Código
  1. #include <stdio.h>
  2. main() {
  3. printf("¿Número de carácteres?\n");
  4. int num;
  5. scanf("%i",&num);
  6. char vector[num];
  7. int c;
  8. FILE *comprob;
  9. comprob = fopen("archivo.txt","rb");
  10. if (comprob==NULL) {
  11. printf("No existe el archivo\n"); }
  12. else {
  13. int i;
  14. for (i=0; i<num; i++) {
  15.          c = fgetc(comprob);
  16.          vector[i]=c;}
  17.  
  18. vector[i] = '\0';
  19. fclose(comprob);
  20. int a;
  21. for (a=0; a<num; a++) {
  22.          printf("%c",vector[a]);} }
  23. return 0;}

En línea






Se busca sabio para intercambio:
Todo lo que se por la mitad de lo que desconozco.
Garfield07


Desconectado Desconectado

Mensajes: 1.121


¡Este año voy a por todas! JMJ 2011


Ver Perfil WWW
Re: Error en codigo C
« Respuesta #6 en: 13 Diciembre 2010, 20:12 pm »

De nada por nada. El mio tmb estaba bien.
Por que el de Sora estaba mal? Quiero decir, eso a mi nunca me ha problematizado
En línea



* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente.
* No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado.
* Si compila esta bien, si arranca es perfecto.

¡Wiki elhacker.net!
Un saludo
Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: Error en codigo C
« Respuesta #7 en: 14 Diciembre 2010, 03:35 am »

@Sagrini, no entiendo para qué mandarle un salto de linea cuando estas extrayendo un valor...
En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
Garfield07


Desconectado Desconectado

Mensajes: 1.121


¡Este año voy a por todas! JMJ 2011


Ver Perfil WWW
Re: Error en codigo C
« Respuesta #8 en: 14 Diciembre 2010, 18:30 pm »

Esto es exactamente lo que pregunto, xD!
En línea



* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente.
* No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado.
* Si compila esta bien, si arranca es perfecto.

¡Wiki elhacker.net!
Un saludo
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Error de código
.NET (C#, VB.NET, ASP)
doggyinline 9 9,761 Último mensaje 12 Abril 2008, 22:01 pm
por elmaro
error en codigo
Programación Visual Basic
elguast 3 2,091 Último mensaje 27 Junio 2008, 19:58 pm
por elguast
Error con mi codigo
.NET (C#, VB.NET, ASP)
Choclito 9 9,444 Último mensaje 13 Noviembre 2010, 17:17 pm
por jacj0102
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines