2011-06-16 70 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