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语言去了。
相关文章:
VScode C语言中文乱码问题解决
🎉 前言 省流:这不是正经的教学,纯属是作者弱智操作导致的乱码问题,绝不是是什么配置原因导致的。 🎉 问题描述 贴一下我写的C语言代码(太久没写了,最近学数据结构才拾起来) #in…...
安全基础学习-AES128加密算法
前言 AES(Advanced Encryption Standard)是对称加密算法的一个标准,主要用于保护电子数据的安全。AES 支持128、192、和256位密钥长度,其中AES-128是最常用的一种,它使用128位(16字节)的密钥进…...
Python 项目实践:文件批量处理
Python 项目实践:文件批量处理 文章目录 Python 项目实践:文件批量处理一 背景二 发现问题三 分析问题四 解决问题1 找到所有文件2 找到文件特定字段3 找出复杂的字符串4 替换目标字符串5 验证文件是否正确 五 总结六 完整代码示例七 源码地址 本项目旨在…...
jsonschema - 校验Json内容和格式
1、创建对象 from pydantic import BaseModel from typing import Listclass Person(BaseModel):name: strage: intclass Student(Person): level: int 16friends: List[Person] 2、生成 schema schema Student.model_json_schema()内容如下 {$defs: {Person: {propertie…...
浅谈计算机视觉新手的学习路径
浅谈计算机视觉新手的学习路径 计算机视觉是人工智能领域的一个重要分支,它的研究目标是使计算机能够理解和解释我们视觉可以看到的所有外界世界信息。对于一个计算机视觉领域的新人,学习计算机视觉大致可以分为几个步骤,包括理论基础、实际…...
SQL编程题复习(24/9/19)
练习题 x25 10-145 查询S001学生选修而S003学生未选修的课程(MSSQL)10-146 检索出 sc表中至少选修了’C001’与’C002’课程的学生学号10-147 查询平均分高于60分的课程(MSSQL)10-148 检索C002号课程的成绩最高的二人学号…...
提前解锁 Vue 3.5 的新特性
Vue 3.5 是 Vue.js 新发布的版本,虽然没有引入重大变更,但带来了许多实用的增强功能、内部优化和性能改进。 1. 响应式系统优化 Vue 3.5 进一步优化了响应式系统的性能,并且减少内存占用。尤其在处理大型或深度嵌套的响应式数组时ÿ…...
web基础—dvwa靶场(十)XSS
XSS(DOM) 跨站点脚本(XSS)攻击是一种注入攻击,恶意脚本会被注入到可信的网站中。当攻击者使用 web 应用程序将恶意代码(通常以浏览器端脚本的形式)发送给其他最终用户时,就会发生 XSS 攻击。允许这些攻击成…...
搜索引擎onesearch3实现解释和升级到Elasticsearch v8系列(五)-聚合
聚合 聚合基于Query结果的统计,执行过程是搜索的一部分,Onesearch支持0代码构建聚合,聚合目前完全在引擎层 0代码聚合 上图是聚合的配置,包括2个pdm文档聚合统计 termsOfExt term桶聚合,统计ext,如&…...
Pandas中df常用方法介绍
目录 常用方法df.columnsdf.indexdf.valuesdf.Tdf.sort_index()df.sort_values() 案例 常用方法 df.columns df.columns 是 Pandas 中 DataFrame 对象的一个属性,用于获取 DataFrame 中的列标签(列名)。 基本语法如下: df.col…...
LabVIEW中AVI帧转图像数据
在LabVIEW中,有时需要将AVI视频文件的帧转换为图像数据进行进一步处理。下面详细讲解了如何从AVI视频提取单帧并将其转换为图像数据集群,以便与其他图像处理VI兼容。 问题背景: 用户已经拥有能够处理JPEG图像数据集群的VI,现在希…...
并发与并行的区别:深入理解Go语言中的核心概念
在编程中,并发与并行的区别往往被忽视或误解。很多开发者在谈论这两个概念时,常常把它们混为一谈,认为它们都指“多个任务同时运行”。但实际上,这种说法并不完全正确。如果我们深入探讨并发和并行的区别,会发现它不仅是词语上的不同,更是编程中非常重要的抽象层次,特别…...
小小扑克牌算法
1.定义一个扑克牌类Card: package democard; public class Card {public String suit;//表示花色public int rank;//表示牌点数Overridepublic String toString() {return "{"suit rank"}";}//实例方法,初始化牌的点数和花色public…...
【第34章】Spring Cloud之SkyWalking分布式日志
文章目录 前言一、准备1. 引入依赖 二、日志配置1. 打印追踪ID2. gRPC 导出 三、完整日志配置四、日志展示1. 前端2. 后端 总结 前言 前面已经完成了请求的链路追踪,这里我们通过SkyWalking来处理分布式日志; 场景描述:我们有三个服务消费者…...
easy-es动态索引支持
背景 很多项目目前都引入了es,由于es弥补了mysql存储及搜索查询的局限性,随着技术的不断迭代,原生的es客户端使用比较繁琐不直观,上手代价有点大,所以easy-es框架就面世了,学习成本很低,有空大…...
SWC(Speedy Web Compiler)
概述 SWC 由 Rust 编写, 既可用于编译,也可用于打包。 对于编译,它使用现代 JavaScript 功能获取 JavaScript / TypeScript 文件并输出所有主流浏览器支持的有效代码。 SWC在单线程上比 Babel 快 20 倍,在四核上快 70 倍。 简…...
【计算机网络】传输层协议UDP
目录 一、端口号1.1 端口号范围划分1.2 认识知名端口号 二、UDP协议2.1 UDP协议端格式2.2 UDP的特点2.3 UDP的缓冲区2.4 UDP使用注意事项2.5 基于UDP的应用层协议 一、端口号 传输层协议负责数据的传输,从发送端到接收端。端口号标识一个主机上进行通信的不同的应用…...
Docker+PyCharm远程调试环境隔离解决方案
DockerPyCharmMiniconda实现深度学习代码远程调试和环境隔离 本文详细介绍了如何在局域网环境下,利用Docker、PyCharm和Miniconda构建一个高效的深度学习远程调试平台。首先在服务器(server)上,通过Docker构建包含不同CUDA环境的镜…...
数字化转型的理论框架对比:从多维视角指导企业成功变革对比DPBOKIT4ITCOBITTOGAF
数字化转型的多维框架解析 在数字化时代,企业如何有效实现数字化转型已成为其生存和发展的关键问题。然而,市场上关于数字化管理的各种框架和理论并存,企业需要根据自身的需求选择最适合的指导路径。本文将通过对几个核心理论框架的对比&…...
【C++掌中宝】深入解析C++命名空间:有效管理代码的利器
文章目录 前言1. namespace 的价值2. namespace 的定义3. 命名空间的本质4. 嵌套的命名空间5. 命名空间的使用6. using 指令7. 补充结语 前言 假设这样一种情况,当一个班上有两个名叫 Zara 的学生时,为了明确区分它们,我们在使用名字之外&am…...
AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...
如何更改默认 Crontab 编辑器 ?
在 Linux 领域中,crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用,用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益,允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...
Chromium 136 编译指南 Windows篇:depot_tools 配置与源码获取(二)
引言 工欲善其事,必先利其器。在完成了 Visual Studio 2022 和 Windows SDK 的安装后,我们即将接触到 Chromium 开发生态中最核心的工具——depot_tools。这个由 Google 精心打造的工具集,就像是连接开发者与 Chromium 庞大代码库的智能桥梁…...
嵌入式常见 CPU 架构
架构类型架构厂商芯片厂商典型芯片特点与应用场景PICRISC (8/16 位)MicrochipMicrochipPIC16F877A、PIC18F4550简化指令集,单周期执行;低功耗、CIP 独立外设;用于家电、小电机控制、安防面板等嵌入式场景8051CISC (8 位)Intel(原始…...
手动给中文分词和 直接用神经网络RNN做有什么区别
手动分词和基于神经网络(如 RNN)的自动分词在原理、实现方式和效果上有显著差异,以下是核心对比: 1. 实现原理对比 对比维度手动分词(规则 / 词典驱动)神经网络 RNN 分词(数据驱动)…...
el-amap-bezier-curve运用及线弧度设置
文章目录 简介示例线弧度属性主要弧度相关属性其他相关样式属性完整示例链接简介 el-amap-bezier-curve 是 Vue-Amap 组件库中的一个组件,用于在 高德地图 上绘制贝塞尔曲线。 基本用法属性path定义曲线的路径,可以是多个弧线段的组合。stroke-weight线条的宽度。stroke…...
vxe-table vue 表格复选框多选数据,实现快捷键 Shift 批量选择功能
vxe-table vue 表格复选框多选数据,实现快捷键 Shift 批量选择功能 查看官网:https://vxetable.cn 效果 代码 通过 checkbox-config.isShift 启用批量选中,启用后按住快捷键和鼠标批量选取 <template><div><vxe-grid v-bind"gri…...
使用 uv 工具快速部署并管理 vLLM 推理环境
uv:现代 Python 项目管理的高效助手 uv:Rust 驱动的 Python 包管理新时代 在部署大语言模型(LLM)推理服务时,vLLM 是一个备受关注的方案,具备高吞吐、低延迟和对 OpenAI API 的良好兼容性。为了提高部署效…...
Modbus转Ethernet IP深度解析:磨粉设备效率跃升的底层技术密码
在建材矿粉磨系统中,开疆智能Modbus转Ethernet IP网关KJ-EIP-101的应用案例是一个重要的技术革新。这个转换过程涉及到两种主要的通信协议:Modbus和Ethernet IP。Modbus是一种串行通信协议,广泛应用于工业控制系统中。它简单、易于部署和维护…...
