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

使用cout打印string数组无输出且exe提示找不到basic_string求助

嘿,我来帮你搞定这两个问题!

问题1:程序没有任何输出

你的代码只定义了cube类和它的U()成员函数,但缺少程序入口main()函数!C++程序必须通过main()函数启动,你得创建cube类的实例,主动调用U()方法才能触发输出逻辑。

另外你贴的代码里cubeCorne...明显是截断了,要确保赋值语句完整(比如cubeCorners[2] = cubeCorners[3];后面要加分号),不然编译都会报错。

给你补全后的基础代码示例:

#include <iostream>
#include <string>
using namespace std;

//red is F-face, yellow is D-face
//B G O R W Y
class cube{
public:
    string cubeCorners[8] = {"BOY", "GOY", "GRY", "BRY", "BOW", "GOW", "GRW", "BRW"};
    void U(){
        cout << cubeCorners[1];
        // 补全你截断的逻辑,比如:
        // cubeCorners[2] = cubeCorners[3];
        // ...其他旋转操作
    }
};

// 必须添加的程序入口
int main() {
    cube myCube; // 创建cube对象
    myCube.U();  // 调用U方法触发输出
    return 0;
}
问题2:运行.exe时提示找不到basic_string

这个错误本质是C++标准库的链接/依赖问题,常见解决方法:

  • 用对编译命令:别用C语言的gcc编译,一定要用C的g++命令,它会自动链接C标准库。
  • 静态编译打包标准库:如果是MinGW编译器,编译时加上-static-libstdc++ -static-libgcc参数,把标准库直接打包进exe,避免运行时找不到依赖的DLL文件。
  • 指定C标准:编译时加上-std=c++17(或更高版本),确保编译器支持现代C特性。

完整的编译命令示例:

g++ your_cube_code.cpp -o cube.exe -std=c++17 -static-libstdc++ -static-libgcc

这样生成的exe就能正常运行,不会再出现找不到basic_string的错误了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:52:41