(C+;+;)你能在C++;没有GUI的程序? 我想知道你是否可以在CMD提示符类型窗口(没有GUI)中运行的C++程序中添加一个网站链接。

(C+;+;)你能在C++;没有GUI的程序? 我想知道你是否可以在CMD提示符类型窗口(没有GUI)中运行的C++程序中添加一个网站链接。,c++,C++,如果可能的话,有人能给我举几个例子吗?您的意思是在命令提示符中输出文本,然后用户可以单击?不,除非终端支持它。Linux终端通常会自动链接与URL模式匹配的文本,因此您只需printf(“http://stackoverflow.com/\n”)并且可以单击,但这取决于终端,而不是您的程序您的意思是用户可以单击命令提示符中的输出文本?不,除非终端支持它。Linux终端通常会自动链接与URL模式匹配的文本,因此您只需printf(“http://stackoverflow.com/\n”)可以点击

如果可能的话,有人能给我举几个例子吗?

您的意思是在命令提示符中输出文本,然后用户可以单击?不,除非终端支持它。Linux终端通常会自动链接与URL模式匹配的文本,因此您只需
printf(“http://stackoverflow.com/\n”)并且可以单击,但这取决于终端,而不是您的程序

您的意思是用户可以单击命令提示符中的输出文本?不,除非终端支持它。Linux终端通常会自动链接与URL模式匹配的文本,因此您只需
printf(“http://stackoverflow.com/\n”)可以点击,但这取决于终端,而不是你的程序。当你写“直接链接”时,不清楚你指的是可点击的文本还是打开url的方法。无论如何,命令行程序通常响应命令行参数。您的程序可以在默认浏览器中打开url以响应命令行标志。在Windows上,您可以调用-在其他系统上,
system
可能是合适的。

当您编写“直接链接”时,不清楚您指的是可单击文本还是打开url的方式。无论如何,命令行程序通常响应命令行参数。您的程序可以在默认浏览器中打开url以响应命令行标志。在Windows上,您可以调用-在其他系统上,
system
可能是合适的。

这取决于具体情况。例如,在Windows中,是的,这是完全可能的,尽管有些不平凡。您可以通过接收鼠标事件,因此从理论上讲,读取输入事件是一件相当简单的事情,如果是在您定义为链接的区域上单击鼠标,您可以将用户引导到您认为合适的链接——如果您希望以文本模式显示web站点,这是可能的(不过,这显然不是小事)。如果你想启动用户的普通web浏览器,那就简单多了(通常只是URL)

事实上,细节有点难看。您必须启用鼠标输入才能使其工作
ReadConsoleInput
为您提供了一个,它是许多不同输入记录类型的联合体,其中之一是鼠标输入记录。当您对鼠标点击做出反应时,您的代码嵌套得相当深。这些都不是不可管理的,但除非您已经有了相当多的Windows控制台编程经验,否则很可能需要一天的时间(甚至更多)才能让它工作,而不是您最初猜测的一两个小时


当然,这是严格针对Windows的——如果你想将代码移植到另一个系统,我想你很有可能会看到完全的重写。对于GUI,有相当多的跨平台库,但文本模式鼠标操作几乎没有得到很好的支持。

这取决于具体情况。例如,在Windows中,是的,这是完全可能的,尽管有些不平凡。您可以通过接收鼠标事件,因此从理论上讲,读取输入事件是一件相当简单的事情,如果是在您定义为链接的区域上单击鼠标,您可以将用户引导到您认为合适的链接——如果您希望以文本模式显示web站点,这是可能的(不过,这显然不是小事)。如果你想启动用户的普通web浏览器,那就简单多了(通常只是URL)

事实上,细节有点难看。您必须启用鼠标输入才能使其工作
ReadConsoleInput
为您提供了一个,它是许多不同输入记录类型的联合体,其中之一是鼠标输入记录。当您对鼠标点击做出反应时,您的代码嵌套得相当深。这些都不是不可管理的,但除非您已经有了相当多的Windows控制台编程经验,否则很可能需要一天的时间(甚至更多)才能让它工作,而不是您最初猜测的一两个小时


当然,这是严格针对Windows的——如果你想将代码移植到另一个系统,我想你很有可能会看到完全的重写。对于GUI,有相当多的跨平台库,但文本模式鼠标操作几乎没有得到很好的支持。

在Unix和Mac系统上,您可以调用
system()
popen()
(或者,如果您想疯狂并完美地使用它,可以使用
fork()
exec()
,这会给您更多的控制权)以URL作为命令行参数启动浏览器。在Mac上,如果给定URL参数,命令
open
将启动用户的浏览器,例如
std::string cmd(“open”);cmd+=url;cmd+=“'”;系统(cmd.c_str())可能会起作用。我不知道如何在Linux中启动用户首选的浏览器;Gnome和KDE可能会有所不同。另外,请确保正确转义URL。在Unix和Mac系统上,您可以调用
system()
popen()
(或者如果您想发疯并完美地使用它,请使用
fork()
exec()
,这会给您更多的控制权)以URL作为命令行参数启动浏览器。在Mac上,如果给定URL参数,命令
open
将启动用户的浏览器,例如
std::string cmd(“open”);cmd+=url;cmd+=“'”;系统(cmd.c_str())可能会起作用。我不知道如何在Linux中启动用户首选的浏览器;Gnome和KDE可能会有所不同。注意,确保正确转义URL。