C++常见错误(笔记)

文章主要讨论了VisualStudio(VS)中出现中文乱码的原因和场景,包括新建文件和导入已有文件时的编码不匹配问题,以及网络编程中的编码差异。解决方案包括修改文件和控制台的编码格式,以及数据的编码转换。另外,还提到了一种编译错误的情况,即代码正确但无法通过编译,原因是使用了全角符号,建议切换到半角输入方式或启用输入法的英文标点功能。
摘要由CSDN通过智能技术生成


前言

Rock老师;C++错误;笔记


一、(学)VS 的中文乱码问题

1.中文乱码的原因:

  1. 中文在不同编码格式下, 存储的方式不一样.
  2. 如果程序是 A编码方式编译运行的,但是控制台却是以 B 编码方式来显示, 就会出现乱码.
  3. vs 的控制台默认编码是 GB2312,编号号是936.
    注意: GBK 编码是兼容 GB2312 的,一般描述 GBK 常常就是指 BG2312.如果源代码文件的编码如果是其他编码格式, 就会导致中文乱码.

2.中文乱码发生场景:

<1>.正常场景:

在 vs 中新建文件时,该文件默认都是 GB2312 编码. 因为控制台默认也是 GB2312 编码,所以一般情况下,都不会出现中文乱码.

<2>.错误场景:

  1. 直接在项目中导入了其他已经创建好的源代码文件, 如果该文件不是 BG2312 编码, 而且含有中文的话, 就必定会出现中文乱码.
  2. 从其他文件中复制代码到 vs 的文件中, 也可能导致编码错乱.
  3. 网络编程中, 和服务器交互通信, 两端的编码很可能不同.

3.解决方案

<1>.修改文件的编码格式

点击文件->高级保存选项->编码格式:(简体中文(BG2312),代码页936)

<2>.强制指定文件执行

#pragma execution_character_set("gbk")

<3>.修改控制台编码格式

不建议(可能会导致控制台不能输中文)

<4>.对数据进行编码转换

适用于:
服务器端和客户端, 或多个客户端之间的编码不一致时.
1.收到对方的其他编码数据时, 先使用特定的接口来进行编码转换.
2.发送本地数据给对方之前, 先使用特定的接口来进行编码转换


二、(自)代码正确,但无法通过编译

1.原因

代码看不出错误,而且报错信息莫名其妙,则很可能是因为代码使用全角字符方式输入的。
特别是各种符号,比如双引号,圆括号,分号等。

2.解决方案

  1. 把原来的部分代码删除,切换到半角输入方式,再重新输入。
  2. 使用搜狗输入法的“中文时使用英文标点”功能,可以避免因为中英文切换导致的全角
    符号错误。

总结

23/05/02 - 未完结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值