搜索
查看: 14666|回复: 18
打印 上一主题 下一主题

Xcode(Mac)如何实现getch()函数功能(conio.h)?

[复制链接]
跳转到指定楼层
楼主
发表于 2016-3-19 00:07:02 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
初学C语言,已经基本学完《啊哈C》,同时会在win10上用啊哈c编译器和macos上用Xcode进行C语言学习;
发现在Xcode里,无法用getch(),getche()等函数,原因在于其所依赖的头文件<conio.h>在windows意外的系统都没有;

故,想请教,如何解决并在Xcode里实现getch()功能(以便于后面的迷宫代码编写等);

是从网上找conio.h头文件放进去,还是有其他替代的函数代码?

最佳答案

查看完整内容

你是在用xcode的模拟终端吗?那个模拟终端有可能不行,要用系统的终端 如果能接受这一点,往下看 首先要装命令行下面用的编译链,在xcode里面找commandLine tools,可以参考 http://docwiki.embarcadero.com/RADStudio/XE4/en/Installing_the_Xcode_Command_Line_Tools_on_a_Mac 如果能接受这一点,往下看 OSX应该自带了ncurses,但如果要确保没问题,应该考虑安装最新版。在OSX下安装一般unix库最好使用homebrew: htt ...
沙发
发表于 2016-3-19 00:07:03 | 只看该作者
liangchao 发表于 2016-3-19 15:43
之前在网上也看都有人提及“ncurses”,不过还是不清楚,方便指点一下具体操作么?

你是在用xcode的模拟终端吗?那个模拟终端有可能不行,要用系统的终端
如果能接受这一点,往下看

首先要装命令行下面用的编译链,在xcode里面找commandLine tools,可以参考
http://docwiki.embarcadero.com/R ... Line_Tools_on_a_Mac

如果能接受这一点,往下看
OSX应该自带了ncurses,但如果要确保没问题,应该考虑安装最新版。在OSX下安装一般unix库最好使用homebrew:
http://brew.sh/
安装好之后在控制台里 brew install ncurses

如果能接受这一点,往下看
使用ncurses那么包含头文件和initscr是少不了的,请先看一眼ncurses的基础教程,例如
https://www.viget.com/articles/g ... the-ncurses-library

然后,ncurses库中有个函数getch,可以参考
http://www.tldp.org/HOWTO/NCURSES-Programming-HOWTO/keys.html

所以说,很多东西都要重新学
板凳
发表于 2016-3-19 08:08:29 | 只看该作者
你下载一个<conio.h>头文件,然后include就可以了
地板
 楼主| 发表于 2016-3-19 09:15:45 | 只看该作者
lgch 发表于 2016-3-19 08:08
你下载一个头文件,然后include就可以了

我想问一下,下载后的头文件放在哪里呢?之前下了一个,放在
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include
似乎还是报错
5#
 楼主| 发表于 2016-3-19 09:15:50 | 只看该作者
lgch 发表于 2016-3-19 08:08
你下载一个头文件,然后include就可以了

我想问一下,下载后的头文件放在哪里呢?之前下了一个,放在
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include
似乎还是报错
6#
 楼主| 发表于 2016-3-19 09:15:58 | 只看该作者
lgch 发表于 2016-3-19 08:08
你下载一个头文件,然后include就可以了

我想问一下,下载后的头文件放在哪里呢?之前下了一个,放在
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include
似乎还是报错
7#
 楼主| 发表于 2016-3-19 09:16:07 | 只看该作者
lgch 发表于 2016-3-19 08:08
你下载一个头文件,然后include就可以了

我想问一下,下载后的头文件放在哪里呢?之前下了一个,放在
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include
似乎还是报错
8#
发表于 2016-3-19 12:23:26 | 只看该作者
我不知道你的编程工具是什么,应该和你的.c文件放在一个文件夹下就可以
9#
发表于 2016-3-19 12:31:36 | 只看该作者
[img]我用的是vc,可以直接添加头文件的,并且可以自己辩解头文件(貌似有这个头文件)

a.jpg (10.92 KB, 下载次数: 5)

a.jpg
10#
发表于 2016-3-19 13:42:25 | 只看该作者
源码在那儿就放哪儿,然后注意是#include "conio.h"
11#
 楼主| 发表于 2016-3-19 13:49:13 | 只看该作者
lgch 发表于 2016-3-19 12:23
我不知道你的编程工具是什么,应该和你的.c文件放在一个文件夹下就可以

是苹果电脑下的Xcode,之前试过放在main.c旁边,还是不行~
12#
 楼主| 发表于 2016-3-19 13:55:08 | 只看该作者
zhuzhu81998 发表于 2016-3-19 13:42
源码在那儿就放哪儿,然后注意是#include "conio.h"

也试过用引号了,不过报错又显示这个conio.h缺少_mingw.h
是我下载的conio.h问题么?
13#
发表于 2016-3-19 15:11:22 | 只看该作者
liangchao 发表于 2016-3-19 13:55
也试过用引号了,不过报错又显示这个conio.h缺少_mingw.h
是我下载的conio.h问题么?

不是,这就涉及到头文件内容了。
14#
发表于 2016-3-19 15:35:58 | 只看该作者
上面的人还是分不清头文件和库,这是两个概念
unix下面提供类似于conio的库是ncurses,或者自己实现也可以
15#
 楼主| 发表于 2016-3-19 15:43:03 | 只看该作者
rosynirvana 发表于 2016-3-19 15:35
上面的人还是分不清头文件和库,这是两个概念
unix下面提供类似于conio的库是ncurses,或者自己实现也可以

之前在网上也看都有人提及“ncurses”,不过还是不清楚,方便指点一下具体操作么?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表