2011-06-16 75 views
1

如您所知,getch()getche()函數不適用於面向Linux的cygwin。在cygwin中包含頭文件

但是,我可以包括borland c的conio.h頭文件,並在我的makefiles中調用getch函數嗎?

它會工作嗎?任何人都可以告訴我如何從cywgin中的不同目錄中包含頭文件。 我在目錄c:/makk/string/中有一個頭文件strcal.h

如何將該頭文件包含在我的生成文件中?

gcc -I/string small.c 

它不工作,我的當前目錄是makk。

回答

1

stdio.h,有一個getchar()功能,這是你所需要的。你不能僅僅傳遞Borland頭文件,因爲它只是聲明瞭函數,它沒有定義它。標準C不需要getch()

要將頭文件包含在不同的區域中,請使用-I指令gcc來設置搜索路徑。

所以,如果你有一個/xyz/myheader.h文件,你可以這樣做:

gcc -I /xyz myprogram.c 

要獲取c:/makk/string/strcal.h,你可能必須使用gcc -I /cygdrive/c/makk/string,或者,如果你知道你在實際上是那個makk目錄中,您可以使用-I string(請注意由於您需要相對路徑而不是絕對路徑,所以缺少領先的/)。

+0

但是getchar()函數會在屏幕上打印字符,它會一直輸入直到您按下enter鍵,但我希望字符不會被顯示出來,並且只能輸入一次。 – karthik 2011-06-16 05:58:58

+0

@karthik,ISO C does不提供該功能。如果你想在UNIXy環境下做到這一點,你可以將終端設置爲原始模式,這樣你就不必等待換行了 - 詳情請參閱tcgetattr和tcsetattr。 – paxdiablo 2011-06-16 06:01:59

+0

謝謝paxdiablo我會檢查出tcgetattr和tc setattr,並且感謝你讓我知道'回合包括頭文件 – karthik 2011-06-16 06:03:12