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

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Como identificar si se ha ingresado nombre o no en C++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Como identificar si se ha ingresado nombre o no en C++  (Leído 3,113 veces)
SpockUrielo

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Como identificar si se ha ingresado nombre o no en C++
« en: 18 Junio 2012, 19:57 pm »

Hola amigos, miren mi codigo es mas o menos asi:

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
char nom[50];
main()
{
printf("Escribe tu nombre ");
gets(nom);
printf("Hola %s",nom);
getch();
}

PERO COMO LE HAGO PARA QUE ME MANDE UN MENSAJE QUE DIGA: No se ha introducido nombre.
CUANDO PRESIONE LA TECLA ENTER

COMO HAGO QUE DETECTE SI HAY O NO TEXTO??

Saludos! :D


En línea

satu


Desconectado Desconectado

Mensajes: 301

Siempre aprendiendo


Ver Perfil WWW
Re: Como identificar si se ha ingresado nombre o no en C++
« Respuesta #1 en: 18 Junio 2012, 20:15 pm »

Hola

Antes que nada te convendría leerte esto

Puedes hacerlo así:
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main() {
  5.    char nom[50];
  6.    printf("Escribe tu nombre: ");
  7.    fgets(nom, 49, stdin);
  8.    if((*nom != '\0') && (*nom != '\n')) {
  9.        printf("Hola %s\n", nom);
  10.    } else {
  11.        printf("No has introducido nada\n");
  12.    }
  13.    getchar();
  14.    return 0;
  15. }
  16.  

Saludos


En línea

Breakbeat como forma de vida
The Swash

Desconectado Desconectado

Mensajes: 194


Programmer


Ver Perfil WWW
Re: Como identificar si se ha ingresado nombre o no en C++
« Respuesta #2 en: 18 Junio 2012, 20:18 pm »

Citar
Hola,

Debes inicializar la variable en 0 y luego comprobar que el primer byte sea NULL o no, sería una alternativa aunque hay varias formas.

Código
  1. if (nom[0] == '\0')
  2. ...

Otra puede ser utilizar strlen de <string.h> para saber la longitud de la cadena, obviamente inicializando la variable en 0 siempre.

Un saludo,
Iván Portilla.

Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.

satu, te me has adelantado (:
En línea

do-while


Desconectado Desconectado

Mensajes: 1.276


¿Habra que sacarla de paseo?


Ver Perfil
Re: Como identificar si se ha ingresado nombre o no en C++
« Respuesta #3 en: 19 Junio 2012, 08:25 am »

¡Buenas!

Ya que utilizas una libreria no estandar, podrias haber investigado por lo menos algunas funciones de las trae...

- kbhit() te detecta si se ha pulsado alguna tecla.
- getch() extrae las pulsaciones de caracter.

Luego:

Código
  1. int posicion = 0, pulsacion = 0;
  2. char letra;
  3.  
  4. do{
  5.    do{
  6.        if(kbhit())
  7.        {
  8.            letra = getch();
  9.            if(letra != '\r')
  10.            {
  11.                cadena[posicion++] = letra;
  12.                pulsacion = 1;
  13.            }
  14.        }
  15.    }while(letra != '\r'); //al leer intro con getch, devuelve '\r', no '\n'
  16. }while(!pulsacion);
  17.  

Este metodo para leer cadenas es un coñazo, ya que tendras que realizar muchas comprobaciones (que no se haya pulsado una tecla de direccion, una de funcion FX, ctrl + algo, alt + algo, supr...) pero si lo implementas bien, puedes montarte un textbox de una linea relativamente interesante.

¡Saludos!

PD:

Y si utilizas las funciones getetxt, puttext,  (creo recordar que eran estas dos)  wherex, wherey, gotoxy, combinandolos con el reconociemiento de las direcciones y de distintas pulsaciones especiales de teclado, puedes hacerte un textbox multiline...

con cprintf, puedes remarcar errores o realzar el texto para determinadas palabras...

Si vas a usar conio, sacale jugo, no la utilices solo para el getch() del final de programa...
« Última modificación: 19 Junio 2012, 08:47 am por do-while » En línea

- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Identificar nombre de vulnerabilidad ?
Hacking
Diabliyo 2 2,707 Último mensaje 9 Agosto 2012, 16:57 pm
por int_0x40
¿Cómo evitar pasar a una siguiente opción cuando no hayan ingresado datos?
Programación C/C++
Juancho25 3 2,609 Último mensaje 2 Noviembre 2012, 10:29 am
por NeoB
buscar dato ingresado
.NET (C#, VB.NET, ASP)
bs78 0 2,341 Último mensaje 20 Febrero 2013, 14:15 pm
por bs78
Como identificar una IP « 1 2 »
Seguridad
mz39720 13 8,419 Último mensaje 9 Septiembre 2020, 01:52 am
por elliotmadness
AL SALIR OPRIMIENDO UNA TECLA IMPRIME TAMBIÉN LO ÚLTIMO INGRESADO
Programación C/C++
snoopty 2 3,685 Último mensaje 15 Septiembre 2021, 18:12 pm
por RayR
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines