Thread overview | |||||
---|---|---|---|---|---|
|
May 28, 2004 getch() function | ||||
---|---|---|---|---|
| ||||
Hi, I'm trying to compile some programs that use the getch() function, but they fail to link: [bruno@localhost D]$ dmd char.d gcc char.o -o char -lphobos -lpthread -lm char.o(.gnu.linkonce.t_Dmain+0x30): In function `_Dmain': : undefined reference to `getch' collect2: ld returned 1 exit status --- errorlevel 256 Example from dsource.org: import std.c.stdio; import std.string; void main() { char k; printf("\nI'm going to ask you to press 10 keys (I promise it's painless).\n" "Certain keys don't count, but the whole alphabet is fair game.\n\n"); for(int i=0; i<10; i++) { printf("Press key: %d\t", i); k = getch(); printf("[%c]\t", k); /* print the character pressed */ printf("[%d]\n", cast(int) k); /* print ASCII code for key */ } printf("\nThe End.\n\n"); } I'm using dmd-0.90 in a Fedora Linux Core 2, gcc version 3.3.3 Hints??? Thanks, Bruno. |
May 28, 2004 Re: getch() function | ||||
---|---|---|---|---|
| ||||
Posted in reply to Bruno A. Costa | "Bruno A. Costa" <bruno@codata.com.br> wrote in message news:c97bq0$18nm$1@digitaldaemon.com... > Hi, > > I'm trying to compile some programs that use the getch() function, > but they fail to link: > > [bruno@localhost D]$ dmd char.d > gcc char.o -o char -lphobos -lpthread -lm > char.o(.gnu.linkonce.t_Dmain+0x30): In function `_Dmain': > : undefined reference to `getch' > collect2: ld returned 1 exit status > --- errorlevel 256 > > Example from dsource.org: > > import std.c.stdio; > import std.string; > > void main() > { > char k; > > printf("\nI'm going to ask you to press 10 keys (I promise it's > painless).\n" > "Certain keys don't count, but the whole alphabet is fair game.\n\n"); > > for(int i=0; i<10; i++) > { > printf("Press key: %d\t", i); > k = getch(); > printf("[%c]\t", k); /* print the character pressed */ > printf("[%d]\n", cast(int) k); /* print ASCII code for key */ > } > printf("\nThe End.\n\n"); > } > > I'm using dmd-0.90 in a Fedora Linux Core 2, gcc version 3.3.3 > > Hints??? > > > Thanks, > Bruno. It's a Windows function (or Linux if you're using some term library). Use getchar(). getch() returns immediatly when a key is pressed, but getchar() waits until return is pressed and is portable. |
May 28, 2004 Re: getch() function | ||||
---|---|---|---|---|
| ||||
Posted in reply to Vathix | Vathix wrote:
> "Bruno A. Costa" <bruno@codata.com.br> wrote in message news:c97bq0$18nm$1@digitaldaemon.com...
>> Hi,
>>
>> I'm trying to compile some programs that use the getch() function,
>> but they fail to link:
>>
>> [bruno@localhost D]$ dmd char.d
>> gcc char.o -o char -lphobos -lpthread -lm
>> char.o(.gnu.linkonce.t_Dmain+0x30): In function `_Dmain':
>> : undefined reference to `getch'
>> collect2: ld returned 1 exit status
>> --- errorlevel 256
>>
>> Example from dsource.org:
>>
>> import std.c.stdio;
>> import std.string;
>>
>> void main()
>> {
>> char k;
>>
>> printf("\nI'm going to ask you to press 10 keys (I promise it's
>> painless).\n"
>> "Certain keys don't count, but the whole alphabet is fair
>> game.\n\n");
>>
>> for(int i=0; i<10; i++)
>> {
>> printf("Press key: %d\t", i);
>> k = getch();
>> printf("[%c]\t", k); /* print the character pressed */
>> printf("[%d]\n", cast(int) k); /* print ASCII code for key */
>> }
>> printf("\nThe End.\n\n");
>> }
>>
>> I'm using dmd-0.90 in a Fedora Linux Core 2, gcc version 3.3.3
>>
>> Hints???
>>
>>
>> Thanks,
>> Bruno.
>
>
> It's a Windows function (or Linux if you're using some term library). Use
> getchar(). getch() returns immediatly when a key is pressed, but getchar()
> waits until return is pressed and is portable.
Yes it is a windows function. But I thought that using a standard library (phobos) I would get portable code.
Shouldn't phobos be more portable?
Thanks,
Bruno.
|
Copyright © 1999-2021 by the D Language Foundation