Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: 7emiliosk8 en 14 Febrero 2017, 23:36 PM

Título: libreria conio.h
Publicado por: 7emiliosk8 en 14 Febrero 2017, 23:36 PM
Hola tengo una duda de la libreria conio.h, esta corre solo en windows?
lei en una parte que decia que gcc no incluia esta libreria, a que se refiere con eso ?

Hice este codigo pero no me funciona, deberia parar cuando precio ENTER sin embargo sigue pidiendo caracteres :s

#include <stdlib.h>   
#include <conio.h>   
int main()
{
    char c,password[10];
    int i=0;
    while( (c=getch()) != '\n')
    {
        password[i] = c;
        printf("*");
        i++;
    }

    return 0;
}

Título: Re: libreria conio.h
Publicado por: engel lex en 14 Febrero 2017, 23:46 PM
creo que deberías leer un poco más lo que wikipedia tiene que decir sobre C y C++...


conio no es una librería standard, así que a menos de ser necesario no se recomienda su uso

aquí más info
https://es.wikipedia.org/wiki/Biblioteca_estándar_de_C (https://es.wikipedia.org/wiki/Biblioteca_est%C3%A1ndar_de_C)
Título: Re: libreria conio.h
Publicado por: 7emiliosk8 en 15 Febrero 2017, 16:42 PM
Gracias, pero el codigo porque no funciona ?
Título: Re: libreria conio.h
Publicado por: _Slash_ en 15 Febrero 2017, 18:05 PM
Cita de: 7emiliosk8 en 14 Febrero 2017, 23:36 PMesta corre solo en windows?

Tu mismo has respondido a tu duda.

Saludos.
Título: Re: libreria conio.h
Publicado por: dato000 en 15 Febrero 2017, 18:50 PM
Cita de: 7emiliosk8 en 14 Febrero 2017, 23:36 PM
Hola tengo una duda de la libreria conio.h, esta corre solo en windows?
lei en una parte que decia que gcc no incluia esta libreria, a que se refiere con eso ?

Hice este codigo pero no me funciona, deberia parar cuando precio ENTER sin embargo sigue pidiendo caracteres :s

#include <stdlib.h>   
#include <conio.h>   
int main()
{
    char c,password[10];
    int i=0;
    while( (c=getch()) != '\n')
    {
        password[i] = c;
        printf("*");
        i++;
    }

    return 0;
}




Intenta con:


    while( (c=getch()) != '\r' && (i < 10) ) //10 es el numero de elementos del arreglo, es decir, la cantidad de caracteres para password
    {
        password[i] = c;
        printf("*");
        i++;
    }


Además es importante resaltar que el arreglo de caracteres termine con '\0', para que sepa que el arreglo tiene un final antes.

     password[i] = '\0';
     printf("%s\n",password);