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


Tema destacado: Únete al Grupo Steam elhacker.NET


  Mostrar Mensajes
Páginas: 1 ... 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 60 61 62 63 64 65 ... 235
491  Programación / Programación C/C++ / Re: ¿Como filtrar todo tipo de datos de entrada en un programa? en: 24 Noviembre 2018, 13:47 pm
Ese tipo de filtros si sabía hacerlos, pero me gustaria hacer uno sencillo para todo carácter que no sea un número positivo. Por ejemplo, imagina que el usuario introduce una arroba, un guión o un símbolo de dollar. ¿Si se pudiese hacer de manera sencilla como lo haria?

Lo que aimnotabot necesita es otro lenguaje de programación. Que tenga una funcion magica que sea inteligente y pasa de precedir cualquier input......, O espera esto es C y C++ puedes programar una funcion que haga cualquier cosa!!!!

Puedes usar todas las respuestas que ya te dieron y meterlas en una funcion creada por ti que se adapte a tus necesidades.

Realmente el C basico no hay manera facil de hacerlo, tal vez con C++ y varias de sus funciones como las que te mencionan de regex en el primero reply, podrías lograr algo mas sencillo, pero si seria de investigar un poco mas ya que hay muchas funciones "nuevas" que no conozco de C++.

Tu mejor opción sería emplear expresiones regulares (regex).

Puedes consultar la siguiente fuente donde viene bastante información...


El mejor de los casos que seria programar una función que haga lo que quieres de una forma que tu comprendas.

Código
  1. int i;
  2. i = funcion_leer("Ingrese un numero positivo\n",CONSTANTE_PARA_POSITIVOS);
  3.  

Y por otro lado tendrias.

Código
  1. int funcion_leer(char *s,int tipo) {
  2. int valor;
  3. int entrar_1 = 1;
  4. int entrar_2 = 1;
  5. char temporal[50];
  6. char *ptr;
  7. do {
  8. entrar_2 = 1;
  9. do{
  10. printf(s);
  11. fgets(temporal,50,stdin);
  12. fflush(stdin);
  13. valor = strtol(temporal,&ptr,10);
  14. switch(ptr[0]) {
  15. case '\n':
  16. case '\r': //No recuardo cual de los 2 es el bueno, esto depende del sistema operativo segun recuerdo, favor de corregirme si estoy en un error
  17. case '\0':
  18. entrar_2 = 0; //Salimos por que la cadena no tiene caracteres extraños
  19. break;
  20. default:
  21. break;
  22. }
  23. }while(entrar_2);//De aqui no salimos hasta que strtol confirme que no tenemos ningun caracter raro, esto es cuando ptr apunte solo a '\r' o '\n' o '\0';
  24. switch(tipo){ //Ahora evaluamos que el dato sea lo que buscamos
  25. case NUMERO_ENTERO: //Cualquier Numero
  26. entrar_1 = 0;
  27. break;
  28. case NUMERO_NATURAL: // > 0
  29. if(valor > 0) {
  30. entrar_1 = 0;
  31. }
  32. break;
  33. case NUMERO_NEGATIVO:
  34. if(valor < 0) {
  35. entrar_1 = 0;
  36. }
  37. break;
  38. case NUMERO_PAR:
  39. if(valor %2 == 0) {
  40. entrar_1 = 0;
  41. }
  42.  
  43. break;
  44. case NUMERO_IMPAR:
  45. if(valor % 2 == 1) {
  46. entrar_1 = 0;
  47. }
  48. break;
  49. //etc...
  50. }
  51. }while(entrar_1);
  52. return valor;
  53. }
  54.  

Obviamente tienes que tener declaradas X cantidad de constantes, no es algo tan sencilla la funcion completa, pero es lo mejor validado que podrás encontrar.

Aqui esta el ejemplo de salida.




Saludos
492  Programación / Bases de Datos / Re: Defina el termino relacion en: 24 Noviembre 2018, 13:41 pm
Si lo quieres ver de esa manera es algo asi. La tupla seria seria como una lista ligada de registros que son elementos de un struct, los valores serian los campos de dicho struct. Y las relaciones entre ellos si es que las hay serian... no se un valor o campo "Genero" de una tupla  llamada "Empleado" que tenga posibles valores de uno y dos, uno para Femenino y dos para Masculino. Entonces existe una Tupla llamada Genero que contiene los valores antes mencionados.

Nos podriamos poner mas estrictos y realizar una tupla para campo una para puros nombres, una para puros apeidos, una para nombres de puestos de trabajo. Etc... y al final cada una de estas tendria una relacion con la Tupla de Empleados, la cual solo terminaria guardando puros numeros que indicarian el index del registro en las otras tuplas
493  Programación / Bases de Datos / Re: Defina el termino relacion en: 24 Noviembre 2018, 08:20 am
Hola

Es la teoria del Modelo relacional de las Bases de Datos, en lenguaje matematico.

https://es.m.wikipedia.org/wiki/Modelo_relacional
https://es.m.wikipedia.org/wiki/Tupla

Imaginate a las Tuplas como Tablas y los Valores como los campos de dicha tabla.

Ahora hay un conjunto de Relaciones entre las tablas. A1 A2 ...

Al decir de un Ejemplo o formalice un Esquema de relacion puedes Dar un ejemplo de una base de datos con N tablas y como se relacionan entre ellas.

Saludos, No tienes algun texto de bases de datos como Guia?
494  Programación / Programación C/C++ / Re: ¿Como filtrar todo tipo de datos de entrada en un programa? en: 24 Noviembre 2018, 05:02 am
La forma correcta de realizar esto es procesar todo como texto o cadena de carectares al momento de la entrada y procesar los tipos de datos directamente con las funciones apropias como strtol o strtof

Codigo para C

Código
  1. int dato_entero;
  2. float dato_flotante;
  3. char temp[10];
  4. //Capturamos variable_entera
  5. do {
  6. printf("Capture variable_entera: ");
  7. fgets(temp,10,stdin);
  8. dato_entero= strtol(temp,NULL,10); //Solo procesamos numeros BASE 10
  9.  
  10. /*En la funcion anterior se pude cambiar el NULL, por un apuntador y asi deteminar en que momento se para la funcion strtol, si el apuntador Apunta, a un '\n' significa que leyo hasta un Enter, si apunta a alguna letra o simbolo significa que trataron de ingresar caracteres distintos a los esperados*/
  11.  
  12. }while(dato_entero >= 0); // Salimos del DO solo si el valor leido es negativo
  13.  
  14.  
  15. do {
  16. printf("Capture variable_flotante: ");
  17. fgets(temp,10,stdin);
  18. dato_flotante= strtof(temp,NULL);
  19.  
  20. /*En la funcion anterior se pude cambiar el NULL, por un apuntador y asi deteminar en que momento se para la funcion strtol, si el apuntador Apunta, a un '\n' significa que leyo hasta un Enter, si apunta a alguna letra o simbolo significa que trataron de ingresar caracteres distintos a los esperados*/
  21.  
  22.  
  23.  
  24. }while(dato_flotante == 0.0); // Salimos del DO solo si el valor leido distinto de 0
  25.  

Para C++ deben de existir formas diferentes de procesarlos datos
495  Programación / Programación C/C++ / Re: Cargar archivo binario(No lee los caracteres de la cadena) en: 24 Noviembre 2018, 00:28 am
No te deja hacer el delete directamente?

Código:
delete(temp);

Y como comentario no existe tal cosa como LENGUAJE VISUAL STUDIOS 2017 C++.
Es C o C++.
Ya aparte mencionar el IDE en este caso se entiende que es Visual Studio.

Saludos!
496  Programación / Programación C/C++ / Re: Duda con struct y funciones (aprendiendo) en: 23 Noviembre 2018, 03:30 am
Hola que tal , es un poco inexacto lo que haces.

Si te interesa el programa funcional date una vuleta por este tema:

Plantillas programas escolares en C

Los errores de tu codigo acontinuacion:
Código
  1. struct registro {
  2. char nombre[100];
  3. int numpaciente;
  4. char obraSocial[50];
  5. };
  6.  
  7.  
  8. void carga(struct registro datos2 ,int n);

debes de escribir primero el struct, antes de ponerlo como parametro en cualquier prototipo de funcion.

La funcion Carga solo recibie un Registro, no un arreglo de registro.

Aqui lo declaras que solo recibe uno:

Código
  1. void carga(struct registro datos2,int n);

Y aqui le pasas un arreglo de 50 registros:


Código
  1. carga(datos ,n);  

Eso no se puede hacer.

Luego tambien no es preciso

Código
  1. printf("Ingrese la cantidad de pacientes:  ");
  2. scanf("%d",&n);

Ya que si n es mayor que 50 te saldras del limite de arreglos que declaraste.

Hay otros detalles que hay que validar pero si no arreglas esos primeros te vas a revolver.

Si lo manejas como apuntador podrias pasar el parametro directamente:
Código
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<string.h>
  4.  
  5. struct registro {
  6. char nombre[100];
  7. int numpaciente;
  8. char obraSocial[50];
  9. };
  10.  
  11.  
  12. void carga(struct registro *datos,int n);
  13.  
  14. int main() {
  15. struct registro datos[50];
  16. int n;
  17. printf("Ingrese la cantidad de pacientes:  ");
  18. scanf("%d",&n);
  19. if(n < 50)
  20. carga(datos ,n);
  21. }
  22.  
  23. void carga(struct registro *datos,int n ) {
  24. int i;
  25. for (i=0;i<n;i++) {  
  26. _flushall();
  27. printf("ingrese el nombre del paciente");
  28. gets(datos[i].nombre);
  29. printf("ingrese el numeros del pas:");
  30. scanf("%d",&datos[i].numpaciente);
  31. printf("ingrese su obra social : ");
  32. gets(datos[i].obraSocial);
  33. }
  34. return 0;
  35. }
  36.  

Hay mucha cosas inseguras en tu codigo por ejemplo gets puedes meter la cantidad de caracteres que quieras si metes mas de 100 caracteres el código tronar, mas específicamente caes en un buffer overflow.

Revisa el link que te pase, maneja correctamente los limites.

Saludos!
497  Seguridad Informática / WarZone / Re: hack-web_google ayuda en: 22 Noviembre 2018, 23:18 pm
No me acuerdo de la prueba y en este momento no tengo acceso a ella,

Segun vi en un post viejohacen referencia que John te puede ayudar

https://foro.elhacker.net/warzone/hackwebgoogle-t331406.0.html

Saludos
498  Programación / Programación C/C++ / Re: Cómo leer número de un txt. en: 22 Noviembre 2018, 18:23 pm
Un ejemplo en C

Código
  1. #include<stdlib.h>
  2. #include<stdio.h>
  3.  
  4. int main() {
  5. int numero;
  6. char temporal[20];
  7. FILE *archivo;
  8. archivo = fopen("archivo.txt","r");
  9. while(!feof(archivo)) {// Esto se lee "mientras (while) no (!) sea el fin del archivo( END OF FILE feof (archivo))  hacer"
  10. fgets(temporal,20,archivo);// Leemos hasta encontrar un enter o un limite de 20 Caracteres suficientes para un numero...
  11. numero = strtol(temporal,NULL,10); //Solo procesamos numeros BASE 10
  12. printf("Dato leido %i\n",numero);
  13. }
  14. }
  15.  
499  Programación / Programación C/C++ / Re: Plantillas programas escolares en C en: 22 Noviembre 2018, 16:11 pm
- El primer do while tiene la condición mal.


Listo!


- Los siguientes codigos repiten varias veces el mismo código con distintas variables. Sugiero refactorizar en vez de repetir el código como lo haces.

La plantilla va orientada a alguien que esta empezando con la programación. Y apenas esta aprendiendo conceptos básicos, si ya después el usuario que utilice la plantilla quiere refactorizar el código entonces sera cosa del usuario que utilice la plantilla.

Saludos
500  Programación / Programación C/C++ / Re: [C] Elementos de un array en: 22 Noviembre 2018, 04:21 am
Y por último, sabéis por qué si citas un código en C aparecen "&#160" en la tabulación del código?? Eso en códigos entre etiquetas cpp no pasa. Y hay alguna forma de usar el tabulador?? Ya que eso de tener que usar muchos espacios para tabular bien el código... :-\

Realmente no  lo habia notado ya que casi no cito post completos.

Al parecer es error del Geshi.

Saludos
Páginas: 1 ... 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 60 61 62 63 64 65 ... 235
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines