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
Hola
Antes que nada te convendría leerte esto (https://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html)
Puedes hacerlo así:
#include <stdio.h>
#include <stdlib.h>
int main() {
char nom[50];
printf("Escribe tu nombre: ");
fgets(nom, 49, stdin);
if((*nom != '\0') && (*nom != '\n')) {
printf("Hola %s\n", nom);
} else {
printf("No has introducido nada\n");
}
getchar();
return 0;
}
Saludos
CitarHola,
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.
if (nom[0] == '\0')
...
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 (:
¡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:
int posicion = 0, pulsacion = 0;
char letra;
do{
do{
if(kbhit())
{
letra = getch();
if(letra != '\r')
{
cadena[posicion++] = letra;
pulsacion = 1;
}
}
}while(letra != '\r'); //al leer intro con getch, devuelve '\r', no '\n'
}while(!pulsacion);
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...