Personally, I find _kbhit() more useful, because _getch() will block waiting for input and if I wanted to block I'd use cin instead. _getch() also locks the current thread by default (_kbhit() doesn't need to since it's just peeking at the buffer); there are non-locking versions, e.g. _getch_nolock()
Include conio.h if you wish to compile code with _getch().
Also, make sure you link against the C Runtime (CRT) library. _getch() is a part of the CRT. Typically, the CRT is provided in pre-compiled object form (*.lib) by whoever wrote your compiler (e.g. Microsoft if you're using Visual Studio). It's usually linked in by default, but you may need to instruct your linker to link against the library, typically libcmt.lib or libcmtd.lib. (libcmtd = LIBrary C MultiThreaded Debug)
on my entire online life, this is the most bizarre thread i found. the thread started Oct 3, 2004.
got an unexpected resurrection 3 years after. and another year it was resurrected with some arrogance and rudeness and on the next year it was resurrected again. can anyone lock this thread and create a new one if the case was not yet solved. it was almost 5 years since the thread was started.
and a side about the compiler and libraries. frankly.. there are a lot of new programmers which cannot differentiate a pseudo code from an actual live source code. let alone to know the difference from extended libraries and extended compiler features.
cya for now.. i'll continue my search for methods to emulate getch.
on my entire online life, this is the most bizarre thread i found. the thread started Oct 3, 2004.
I know it's difficult to comprehend, but sometimes programming languages and their associated APIs evolve. This page was a rather prominent result during my google search for getch and it suggests using deprecated features. To me, it was just common sense to add some information for future googlers who stumble on this thread.
Quote ...
and a side about the compiler and libraries. frankly.. there are a lot of new programmers which cannot differentiate a pseudo code from an actual live source code. let alone to know the difference from extended libraries and extended compiler features.
And maybe some of those new programmers will google terms I used that they do not understand, and maybe they'll even learn enough to stop being "new programmers".
I'm looking for a way to grab a single character from the console without the need to hit "ENTER" after each character. I know that getch() has this feature and cin.get() does not. Is there a 'better' method than getch() to grab a single console character without the "ENTER"?
I'm looking for a way to grab a single character from the console without the need to hit "ENTER" after each character. I know that getch() has this feature and cin.get() does not. Is there a 'better' method than getch() to grab a single console character without the "ENTER"?
Thank you.
If it works, it works.
There's no point worrying about if a better methods exists because getch() or anything that simulates its behaviour is going to be non-standard anyway, so your concern is a moot point.
Better to post to an old relevant thread than start a new one...
I used google trying to find what is the easy way to implement the ubiquitous "Hit any key to continue." in a "console" app (I'm using Visual Studio 2010 atm).
I found the answer above, thank you DCX2. Here is the 2010 version of the answer:
[o.t. rant]
Since this thread has already been thoroughly trashed by people more concerned with showing how much smarter they are than the other poster [implicitly bringing themselves down to their level] I must address a particularly irksome point:
> "It's generally considered rude to resurrect ancient threads, for any reason."
NO! To anyone who says that, please stop it already!!!
I have been reading the Internet since about 1987. That general idea about posting to "old" threads being bad has to be one of the most ignorant ones I have run across in twenty five years... Ugh.
[/o.t. rant]
Last edited by critofur; Jan 11th, 2012 at 6:00 pm.