Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

GNU GCC getch() sorunu

Başlatan Mr.Java, 31 Ağustos 2013, 19:32:33

Mr.Java

Arkadaşlar merhaba.Linux ortamında netbeans ile gcc kullanıyorum.getch(); fonksyonu bir türlü kullanamadım.getchar();'da sorun yok iken getche() ve getch() fonksiyonlarında sorun oluyor.Derleyici bulunamadı diyor.Daha önce bu şekilde sorun yaşayan oldu mu ?

cicjoe

Hocam getch() standart olmadigi icin her derleyicide olmayabiliyor..

Mr.Java

Yo windows tarafında kullanıyorduk sıkıntı yoktu fakat Linux ortamında netbeansta sıkıntı yarattı.

cicjoe

#3
Hocam standart olmamasi o anlama geliyor zaten.. Yani birinde varken, digerinde olmayabiliyor.. Standart olmayan fonksiyonlarin kullanimi pek onerilmez, tasinabilirligi azalttigi icin. Ki sizin basiniza gelen de bu. Ama tercih sizin tabiki.. Eger istiyosarsaniz herhangi bir derleyicinin getch fonksiyonunu kopyalayip kullanabilirsiniz..

mesaj birleştirme:: 31 Ağustos 2013, 22:30:54

http://www.daniweb.com/software-development/c/threads/410155/gcc-equivalent-for-getch

Soyle denmis:

-Since getch() is not and never has been part of the language definition, you should consider not using it at all.

Ve soyle denmis:
-just save this as conio.h to use getch() and getche() functions :
#include <termios.h>
#include <unistd.h>
#include <stdio.h>

/* reads from keypress, doesn't echo */
int getch(void)
{
    struct termios oldattr, newattr;
    int ch;
    tcgetattr( STDIN_FILENO, &oldattr );
    newattr = oldattr;
    newattr.c_lflag &= ~( ICANON | ECHO );
    tcsetattr( STDIN_FILENO, TCSANOW, &newattr );
    ch = getchar();
    tcsetattr( STDIN_FILENO, TCSANOW, &oldattr );
    return ch;
}

/* reads from keypress, echoes */
int getche(void)
{
    struct termios oldattr, newattr;
    int ch;
    tcgetattr( STDIN_FILENO, &oldattr );
    newattr = oldattr;
    newattr.c_lflag &= ~( ICANON );
    tcsetattr( STDIN_FILENO, TCSANOW, &newattr );
    ch = getchar();
    tcsetattr( STDIN_FILENO, TCSANOW, &oldattr );
    return ch;
}

fgokcegoz

Alıntı yapılan: Fkarizmatik - 31 Ağustos 2013, 19:32:33
Arkadaşlar merhaba.Linux ortamında netbeans ile gcc kullanıyorum.getch(); fonksyonu bir türlü kullanamadım.getchar();'da sorun yok iken getche() ve getch() fonksiyonlarında sorun oluyor.Derleyici bulunamadı diyor.Daha önce bu şekilde sorun yaşayan oldu mu ?

"conio.h" başlık dosyasını dahil ettikten sonra, getch() fonksiyonunu kullanabilirsiniz... GCC de problem olmaması lazım... Eclipse üzerinde GCC ile çalışırken, eclipse in kendi konsolundan kaynanklanan bir problem var, getch() fonksiyonu ile ilgili ama o sizin bahsettiğiniz "derleyicinin bulamaması" gibi bir problem değildi.
"Vicdanın ziyası, ulûm-u diniyedir. Aklın nuru, fünun-u medeniyedir. İkisinin imtizacıyla hakikat tecelli eder." (Bediüzzaman Said Nursi)

cicjoe

http://en.wikipedia.org/wiki/Conio.h

"conio.h is a C header file used mostly by MS-DOS compilers to provide console input/output.[1] It is not described in The C Programming Language book, and it is not part of the C standard library, ISO C nor is it defined by POSIX."