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

VS Code中C语言scanf()使用Code Runner运行无输出及终端报错问题求助

问题排查及解决方案

1. 代码逻辑错误(运行无输出、无输入等待的核心原因)

你给出的C代码存在参数传递错误:
scanf("%d", i); 此处第二个参数需要传入变量的内存地址,你直接传入了i的值属于未定义行为,会触发程序直接崩溃,printf的内容还没来得及刷新到输出面板程序就已退出,因此看不到任何输出。
修复后的代码如下:

#include <stdio.h>
#include <string.h>
int main()
{
    int i;
    printf("What's your number?\n");
    scanf("%d", &i); // 此处添加&取地址符
    // 可加一行打印验证输入结果
    printf("Your number is: %d\n", i);
    return 0;
}

2. Code Runner开启终端运行后的路径报错解决方案

报错的根本原因是Windows路径末尾的反斜杠转义了闭合的双引号,导致bash解析命令时把整行内容识别为了一个路径字符串,触发找不到文件的错误。可按以下优先级尝试修复:

  • 修改Code Runner执行配置,避免路径末尾多余反斜杠:
    打开VSCode设置,搜索Code-runner: Executor Map,点击「在settings.json中编辑」,找到C语言对应的执行规则,将默认的$dir替换为$dirWithoutTrailingSlash,修改后配置示例:
    "code-runner.executorMap": {
        "c": "cd $dirWithoutTrailingSlash && gcc $fileName -o $fileNameWithoutExt && $dirWithoutTrailingSlash/$fileNameWithoutExt",
        // 其他语言配置保持不变即可
    }
    
  • 切换VSCode默认终端为PowerShell或CMD:
    你当前用的是bash终端,对Windows路径的反斜杠转义规则兼容性差,切换为Windows原生终端可避免此类路径解析问题。
  • 避免路径/文件名包含空格或特殊字符:
    确认你的源码存放路径、文件名没有中文、空格等特殊字符,减少路径解析异常概率。

补充说明:Code Runner默认的输出面板不支持交互式输入,你开启Run in terminal的操作是正确的,配置修复后即可正常触发输入等待。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 08:45:04