使用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
相关产品推荐
相关产品推荐

