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

使用std::cin和std::cout出现段错误的原因及解决咨询

C++程序段错误原因分析及解决方案

问题代码

#include <iostream>
#include <string>

using namespace std;

int main() {
    std::cout << "Hello, World!
";
    std::string s;

    std::cin >> s;
    return 0;
}

编译命令

C:\msys64\mingw64\bin\g++.exe -fdiagnostics-color=always -g C:\Users\myUser\Dokumente\codes\C++\hello_world.cpp -o C:\Users\myUser\Dokumente\codes\C++\hello_world.exe

运行结果

已发生异常。
段错误(Segmentation fault)

预期结果

控制台输出 Hello, World!

问题原因

  1. 字符串语法错误触发运行异常:第8行的字符串写法违反C++语法规范——普通双引号包裹的字符串不允许直接包含未转义的换行符。编译器解析这段代码时会出现错误,生成的可执行文件存在缺陷,最终导致运行时触发段错误。
  2. 与VSCode管理员权限无关:该问题完全由代码语法错误导致,和是否以管理员模式运行VSCode没有任何关联,无需切换权限。

修复方案

将错误的字符串写法修改为合法形式,两种可选方式:

  • 使用转义字符\n替代实际换行:
    std::cout << "Hello, World!\n";
    
  • 若需保留字符串的换行格式,可使用C++11及以上版本支持的原始字符串字面量:
    std::cout << R"(Hello, World!
    )";
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 10:52:17