VScode C语言中文乱码问题解决

🎉 前言

省流:这不是正经的教学,纯属是作者弱智操作导致的乱码问题,绝不是是什么配置原因导致的。

🎉 问题描述

贴一下我写的C语言代码(太久没写了,最近学数据结构才拾起来)

复制代码
#include <stdio.h>
#include<string.h>
#define MAXSIZE 100
typedef struct 
{
   char no[20];
   char name[50];
   float price;
}Book;

typedef struct{
    Book *elem;
    int length;
}SqList;

int InitList(SqList *L);

int main()
{

    SqList L;
    InitList(&L);
    printf("%s",L.elem[0].name);
}

int InitList(SqList *L)
{
    Book a[100];
    strncpy(a[0].no,"114514",7);//多出一个长度是用于存储字符串末尾的空字�?
    strncpy(a[0].name,"红楼梦",4);
    a[0].name[sizeof(a[0].name) - 1] = '\0'; // 手动添加空字符
    a[0].price = 100;
    L->elem = a;
    if(!L->elem){
        return -1;
    }
    L->length = 0;
    return 0;
}

在主函数中我想要打印出第一本书名,也就是"红楼梦",但是终端却输出:红�SW�% ,心肺骤停!

我一开始还以为编码有问题,但后来改成GBK还是存在这个问题。

这是我不知是哪根筋松动了,注意到strncpy(a[0].name,"红楼梦",4); 这一句,出于本能反应,我将4改成了一个较大的数------10.

再运行一下,乱码消失了,amazing!

此时我恍然大悟,哦,对哟,C语言中一个中文字符好像占两个字符,我用4个存储空间肯定存不下"红楼梦"(加上'\0')这三个字啊,不说了,羞死了,赶紧去学C语言去了。

相关推荐
wengqidaifeng1 小时前
数据结构(三)栈和队列(上)栈:计算机世界的“叠叠乐”
c语言·数据结构·数据库·链表
手揽回忆怎么睡1 小时前
opencode和TRAE使用Superpowers 和ui-ux-pro-max skillls
ide·ui·ai·ux
CaracalTiger1 小时前
OpenClaw-VSCode:在 VS Code 中通过 WebSocket 远程管理 OpenClaw 网关的完整方案
运维·ide·人工智能·vscode·websocket·开源·编辑器
VekiSon1 小时前
Linux内核驱动——设备树原理与应用
linux·c语言·arm开发·嵌入式硬件
BlackQid2 小时前
深入理解指针Part5——回调函数及应用
c语言
日拱一卒——功不唐捐2 小时前
字符串匹配:暴力法和KMP算法(C语言)
c语言·算法
lcj25112 小时前
深入理解指针(4):qsort 函数 & 通过冒泡排序实现
c语言·数据结构·算法
CS创新实验室3 小时前
Pandas 3 的新功能
android·ide·pandas
-嘟囔着拯救世界-3 小时前
【2026 最新版】OpenAI 祭出王炸 GPT-5.3-Codex!Win11 + VSCode 部署保姆级教程
vscode·gpt·chatgpt·node.js·node·codex·gpt5
4311媒体网3 小时前
C语言操作符全解析 C语言操作符详解
java·c语言·jvm