You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让C++程序在新打开的Ubuntu终端中输出内容?

让C++程序输出内容到新打开的终端

你的代码里system("gnome-terminal")只是单独打开一个新终端窗口,和当前C++程序的输出流(std::cout)完全无关,所以std::cout的内容只会输出到程序启动时的原终端。

给你两个简单的实现方法:

方法1:直接让新终端执行输出命令

修改system的参数,让gnome-terminal启动bash并执行输出命令,同时添加read防止终端一闪而过:

#include <stdlib.h>
int main(){
    // 打开新终端并输出"something",等待用户按回车再关闭
    system("gnome-terminal -- bash -c 'echo something; read'");
    return 0;
}

方法2:输出程序中动态生成的内容

如果要输出程序里的变量或动态内容,可以拼接命令字符串:

#include <stdlib.h>
#include <string>
int main(){
    std::string output_content = "这是我程序里生成的内容";
    // 拼接命令,注意转义双引号
    std::string cmd = "gnome-terminal -- bash -c 'echo \"" + output_content + "\"; read'";
    system(cmd.c_str());
    return 0;
}

关键说明

  • gnome-terminal -- bash -c '命令':让新终端启动bash解释器,执行单引号里的命令
  • read:让终端等待用户输入任意字符再关闭,这样你能看到输出内容;如果不需要停留,可以去掉; read

内容的提问来源于stack exchange,提问作者Un_known_user

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 14:55:21