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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


  Mostrar Mensajes
Páginas: 1 ... 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 [44] 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 ... 235
431  Programación / Programación C/C++ / Re: Ayuda con trozo codigo de "quiere continuar s/n".. en: 6 Diciembre 2018, 07:28 am
conozco la funcion fflush pero tengo entendido que puede que su funcionamiento no siempre sea el esperado.

Con fgets no hay riesgo de overflow mientras especifiques un numero de lectura igual o inferior al tamaño del buffer. Pero como lo mencionas si el usuario ingresa mas datos estos quedaran en el buffer, lo cual afectaría a las próximas funciones que lean datos

Exactamente, vimos que fseek funciona para sustituir fflush. Segun lo discutimos en: ¿Queda algo en el Buffer de Entrada stdin? (Solucionado)

Es eso o detectar si queda algo en el buffer de stdin analizando lo devuelto por fgets, esto es si el buffer de destino indicado por fgets contiene el retorno de linea significa que ya no queda nada en el stdin y podemos leer el siguiente dato sin problema.

432  Programación / Desarrollo Web / Re: Se puede programar desde la consola de Chrome? en: 6 Diciembre 2018, 07:18 am
Hola que tal, hace muchos años, usaba codigo javascript, Tambien llegue automatizar muchas cosas usando VBA desde excel, siendo que odiaba el lenguaje me sirvio mucho para mis trabajos.

Desde la consola sigue aceptando codigo javascript intenta con un

Código
  1. alert(document.title);

Puedes leer el siguien link y cargarlo como un plugin de chrome:

https://support.google.com/chrome/a/answer/2714278?hl=es
433  Programación / Programación C/C++ / Re: Ayuda con trozo codigo de "quiere continuar s/n".. en: 6 Diciembre 2018, 00:48 am
Tu problema principal es que todavia quedan datos en el buffer de entrada, te recomiendo que leas
¿Queda algo en el Buffer de Entrada stdin? (Solucionado)


Utiliza las etiqutas para codigo

Código
  1. entrar_opcion_si_no = 1;
  2. do{
  3. printf("Desea segir ingresando mas datos? (s/n)\n");
  4. fgets(temp,10,stdin);
  5. switch(tolower(temp[0])) {
  6. case 's':
  7. entrar_opcion_si_no = 0;
  8. printf("Selecciono SI\n");
  9. break;
  10. case 'n':
  11. entrar_opcion_si_no = 0;
  12. printf("Selecciono NO\n");
  13. entrar = 0; // Se cambia la variable para salir del menu principal
  14. break;
  15. default:
  16. printf("opcion incorrecta, solo 's' o 'n'\n");
  17. break;
  18. }
  19. }while(entrar_opcion_si_no == 1);
  20.  

Otra cosa, se que estas empezado, pero como recomendacion deja de utlizar funciones fancy ( funciones de adorno ) y concentrate en aprender las estrucutras basicas

Es decir quita todo esto:

Código:

printf("\n\n\n\n\n\t ANTES DE CONTINUAR .........");
printf("\n\n\n\n\n\t                   FAVOR MAXIMIZAR LA PANTALLA DE EJECUCION DE C .........\n\n\n\n");
printf("\n\n\n\n\n .............");
system("pause");
system("cls");

Y tambien deja de utilizar conio.h no es una libreria estandar


Me tome la molestia de re-escribir tu programa con varia modificaciones.

Código
  1. #include<stdio.h>
  2. #include<ctype.h>
  3. #include<string.h>
  4. #include<stdlib.h>
  5.  
  6. int main() {
  7. char frase[50], frase2[50];
  8. char temp[10];
  9. int entrar = 1;
  10. int  i=0,entrar_opcion_si_no;
  11. do {
  12. printf("PROGRAMA PIDE 2 FRASES, PRIMERO LAS COMPARA A VER SI SON IGUALES, LUEGO BUSCA LA SEGUNDA DENTRO DE LA PRIMERA Y POR ULTIMO NOS DICE CUAL ES MAYOR\n");
  13. printf("Ingrese frase 1 maximo 50 caracteres \n");
  14. fgets(frase,50,stdin);
  15. fseek(stdin, 0, SEEK_END);
  16. frase[strcspn(frase,"\n\r")] = '\0';
  17. printf("Ingrese frase 2 maximo 50 caracteres \n");
  18. fgets(frase2,50,stdin);
  19. fseek(stdin, 0, SEEK_END);
  20. frase2[strcspn(frase2,"\n\r")] = '\0';
  21.  
  22. printf("Primero vamos a compararlas si son iguales o no ...\n");
  23.  
  24. if (strcmp(frase,frase2)==0) {
  25. printf("La frase 1 \"%s\" es IGUAL a la frase 2 \"%s\"",frase, frase2);
  26. printf(" y la frase 2 esta dentro de la frase 1");
  27. }
  28. else {
  29. printf("La frase 1 \"%s\" es DIFERENTE a lab frase 2 \"%s\"\n",frase, frase2);
  30. if (strcmp (frase,frase2)>0)
  31. printf("La frase 1 es MAYOR que la frase 2\n");
  32. else
  33. printf("La frase 1 es MENOR que la frase 2 oooooo la frase2 MAYOR que la frase1.. como quieras vaso medio lleno vaso medio vacio jejeje\n");
  34. }
  35.  
  36. if (strstr(frase,frase2)==NULL)
  37. printf("La frase 2 NO esta incluida en la frase 1\n");
  38. else
  39. printf("La frase 2 SI esta incluida en la frase 1\n");  
  40.  
  41. entrar_opcion_si_no = 1;
  42. do{
  43. printf("Desea segir ingresando mas datos? (s/n)\n");
  44. fgets(temp,10,stdin);
  45. switch(tolower(temp[0])) {
  46. case 's':
  47. entrar_opcion_si_no = 0;
  48. printf("Selecciono SI\n");
  49. break;
  50. case 'n':
  51. entrar_opcion_si_no = 0;
  52. printf("Selecciono NO\n");
  53. entrar = 0; // Se cambia la variable para salir del menu principal
  54. break;
  55. default:
  56. printf("opcion incorrecta, solo 's' o 'n'\n");
  57. break;
  58. }
  59. fseek(stdin, 0, SEEK_END);
  60. }while(entrar_opcion_si_no == 1);
  61. }while(entrar);
  62. return 0;
  63. }
  64.  

Le quite la condición donde evalúas si son mayores a 50 de longitud, ya que con fgets limitas eso:
434  Programación / Programación C/C++ / Re: Problema entrada estándar en: 5 Diciembre 2018, 04:24 am

Interesante si funciono en Windows  ;-)

Código:
#include<stdio.h>
#include<unistd.h>

int main() {
if (!isatty(fileno(stdin))){
char temp[100];
fgets(temp,100,stdin);
printf("%s",temp);
}
}
435  Programación / Programación C/C++ / Re: Necesito ayuda con un generador de numeros al azar en: 5 Diciembre 2018, 04:14 am
hay que saber lo que se esta haciendo con el operador de modulo, solo devuelve el residuo de la division

Código
  1. rand() % 10

Solo genera números del 0 al 9 ya que son los residuos posibles al dividir cualquier numero entre 10

Código
  1. 1 + rand() % 10

Solo genera numeros del 1 al 10 ya que seria 1 + los numeros del 0 al 9, si haces la suma te dara numeros del 1 al 10

Por cierto tienes error en el printf

MAL
Código
  1. printf (contador, "%d%c",  rand() % 10, '\n');

deberia de ser

Código
  1. printf ("%d\n",  rand() % 10);

Por lo visto lo tratas de usar como si fuera cout, yes muy distinto el comportamiento

Saludos
436  Foros Generales / Noticias / Re: Secuestran más de 400.000 routers en todo el mundo para minar criptomonedas en: 5 Diciembre 2018, 02:38 am
Pero segun tengo entendido la factura de luz de los routers se va a pagar esten o no esten minando croiptos..

Asi que realmente no deberia de exister queja, lo malo es cuando usan los routers para realizar DDoS, ahi si no se puede hacer nada por que son perdidadas economicas.

Saludos!
437  Programación / Programación C/C++ / Re: Problema entrada estándar en: 5 Diciembre 2018, 00:22 am
Si presionas ^D (Control D) en linux o ^Z en windows, generas un eof para la entrada estandar.

Interesante, si es cierto que cuand quiero salir de una terminal linux rapidamente presiono control D y para windows no me sabia lo del control z.

Sin embargo el OP trata de automatizar alguna tarea, que cuando envie texto mediante Echo al programa, este lo capture y lo procese, y cuando envié alguna cadena vacia, no se quede esperando el programa.

Saludos!
438  Programación / Programación C/C++ / Re: Problema entrada estándar en: 4 Diciembre 2018, 23:41 pm
Ya entendi, lo que quieres es que si hay algo en la entrada estandar lo procese, si no, simplemente termine.

te convendría revisar el siguiente tema ¿Queda algo en el Buffer de Entrada stdin? (Solucionado)



Asi no se puede hacer lo que dices con metodos estadar (Segun creo no se puede).

El punto esta en que la mayoria de las funciones tipo getchar, getc, fgets etc......  se quedan esperando entrada hasta que lea algo.

Yo intenten validar si habia algo en la entrada estandar mediante el uso de feof, pero resulta que para Stdin nunca es el FIN del archivo, como lo muestro en una de las replies el link que te pase. sin embargo no se si funcione para el metodo que muestras de echo .... o type. Voy a probarlo y te comento.

Saludos
439  Programación / Programación C/C++ / Re: Compilar C/C++ en Windows en: 4 Diciembre 2018, 22:14 pm
Yo utilizo Notepad++ y de compilador el Gcc de mingw

http://www.mingw.org/

Saludos
440  Programación / Programación C/C++ / Re: cambiar de nombre a un proceso en: 4 Diciembre 2018, 20:11 pm
He leido que con un execl cambiando el argumento argv[0] por "hijo" debería de funcionar pero no me funciona.


Código
  1. int execl(const char *path, const char *arg, ...);

Código:
The const char *arg and subsequent ellipses in the execl(), execlp(), and execle() functions can be thought of as arg0, arg1, ..., argn. 

Eso solo modifica los parametros que procesa el programa llamado mediante execl. normalemnte el argv[0] es el nombre del programa, pero eso solo cambia la forma en la que el programa se ve asi mismo, para el sistema operativo el proceso va seguir teniendo el nombre original.

Si quieres cambiar el nombre del proceso listado en el PS, tienes que "rootkitear" tu sistema operativo y controlar la forma en la que el PS actual afectandi directamente la informacion  que PS esta leyendo actualmente.


Saludos



Páginas: 1 ... 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 [44] 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 ... 235
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines