运行main.exe未输出0:C++20教程中g++配置验证问题
问题
我在Youtube跟着Daniel Gakwaya的C课程学习,课程讲了配置g支持C++20的方法,但编译生成main.exe后运行,终端没有像教程那样输出数字0,直接回到命令提示符:
PS E:\Work\Courses\Coding\C++\DanielGakwayaCourse\EnvironmentSetup\WindowsTemplateProject> .\main.exe
PS E:\Work\Courses\Coding\C++\DanielGakwayaCourse\EnvironmentSetup\WindowsTemplateProject>
我重装了VS Code,问题依旧。本来预期输出0来确认VS Code和g++正常连接,担心影响后续学习。我是编程新手,相关代码和配置如下:
main.cpp代码
#include <iostream> int main(){ auto result = (10 <=> 20) > 0; std::cout << result << std::endl; }
tasks.json配置
{ "version": "2.0.0", "tasks": [ { "type": "cppbuild", "label": "Build with g++ 13.2.0", "command": "C:\\mingw64\\bin\\g++.exe", "args": [ "-g", "-std=c++20", "${file}", "-o", "${fileDirname}\\${fileBasenameNoExtension}.exe" ], "options": { "cwd": "${fileDirname}" }, "problemMatcher": [ "$gcc" ], "group": "build", "detail": "compiler: C:\\mingw64\\bin\\g++.exe" } ] }
解决步骤
- 手动编译验证
跳过VS Code,直接在终端执行以下命令,排除IDE配置问题:
cd E:\Work\Courses\Coding\C++\DanielGakwayaCourse\EnvironmentSetup\WindowsTemplateProject g++ -std=c++20 main.cpp -o main.exe .\main.exe
- 如果输出0,说明VS Code的编译任务可能没正确触发,或者编译的不是当前打开的
main.cpp; - 如果仍无输出,先确认g版本:执行
g++ --version,确保是13.2.0且支持C20。
检查VS Code编译状态
在VS Code中按Ctrl+Shift+B选择你的Build with g++ 13.2.0任务,查看终端的编译输出,确认没有报错且编译成功。如果编译失败,根据错误提示调整配置或代码。用简单代码测试输出
把代码替换为最基础的输出测试,验证终端是否能正常显示内容:
#include <iostream> int main(){ std::cout << "测试输出" << std::endl; return 0; }
编译运行后如果能看到输出,说明原代码逻辑本身没问题,可能是之前的编译产物未更新;如果还是没输出,检查终端是否正常工作(比如运行ping 127.0.0.1看是否有输出)。
- 确认三向比较的逻辑
你的代码中(10 <=> 20)返回std::strong_ordering::less(对应整数值-1),和0比较的结果是false,输出false会打印0,逻辑是正确的。如果教程中输出0,说明逻辑一致,问题出在编译或运行环节。
内容的提问来源于stack exchange,提问作者Gin
相关产品推荐
相关产品推荐

