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

Ubuntu下VS Code运行C程序无法在终端/输出面板显示内容的求助

解决C程序读取文件内容不显示的问题

一、修复代码核心逻辑错误

你的代码中while循环的条件存在运算符优先级问题,这是无法正确读取文件内容的根本原因:
原代码里while(ch = fgetc(in) != EOF)会先执行fgetc(in) != EOF的比较操作,将结果(0或1,布尔值)赋值给ch,而非读取到的实际字符。这导致buff中存储的都是无效值,最终puts(buff)自然无法输出正确内容。

修复后的循环条件需要添加括号,确保先赋值再判断:

while((ch = fgetc(in)) != EOF)
    buff[i++] = ch;

完整修复后的代码:

#include<stdio.h>

int main()
{
    char buff[100];
  
    FILE *in = fopen("my_file.txt", "r");
    if(in == NULL)
        return 2;

    char ch;
    int i = 0;
    while((ch = fgetc(in)) != EOF)
        buff[i++] = ch;
    buff[i] = '\0';
  
    puts(buff);  
        
    fclose(in);
    
    return 0;
}

二、检查VS Code运行配置与文件路径

  1. 确认文件位置
    确保my_file.txt和编译生成的可执行文件在同一目录下。如果文件在其他路径,要么将文件移至可执行文件目录,要么在fopen中使用绝对路径(比如/home/your_username/project/my_file.txt)。

  2. 配置VS Code工作目录
    若使用VS Code的任务(tasks.json)编译运行,需确保工作目录指向C文件所在位置:
    在tasks.json的配置项中添加"cwd": "${fileDirname}",示例如下:

    {
        "version": "2.0.0",
        "tasks": [
            {
                "type": "cppbuild",
                "label": "C/C++: gcc build active file",
                "command": "/usr/bin/gcc",
                "args": [
                    "-fdiagnostics-color=always",
                    "-g",
                    "${file}",
                    "-o",
                    "${fileDirname}/${fileBasenameNoExtension}"
                ],
                "options": {
                    "cwd": "${fileDirname}" // 确保工作目录为当前文件所在目录
                },
                "problemMatcher": [
                    "$gcc"
                ],
                "group": {
                    "kind": "build",
                    "isDefault": true
                },
                "detail": "编译器: /usr/bin/gcc"
            }
        ]
    }
    
  3. 直接在终端运行可执行文件
    编译完成后,手动在VS Code的TERMINAL面板中输入可执行文件路径运行(比如./your_program_name),验证是否能输出内容。如果手动运行正常,说明VS Code的运行配置需要调整;如果手动运行也无输出,再检查文件权限或文件内容是否正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 08:51:00