C++ Visual studio2017无法输出中文或者输出中文时显示为乱码
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ Visual studio2017无法输出中文或者输出中文时显示为乱码相关的知识,希望对你有一定的参考价值。
当想输出一个简单中文时,显示如下错误;有的尽管能输出成功,却显示如此乱码。
你用notepad++打开,全选你的代码,然后选编码这样试试,我用Qt也经常遇到这个问题,但vs2017我不知道行不行,你可以试试
参考技术A 去掉 #include"stdafx.h" 参考技术B 向输出流 cout.imbue() 一个中文的 localeC++ 无法在 Visual Studio 中实现抽象类
【中文标题】C++ 无法在 Visual Studio 中实现抽象类【英文标题】:C++ Cannot implement abstract class in Visual Studio 【发布时间】:2020-02-12 20:08:59 【问题描述】:我尝试在 C++ 中实现模式状态,但显然我的基类是not a class or struct name
。我在 Visual Studio 2019 中收到此错误。我的基类如下:
#pragma once
class LightingState
public:
LightingState() ;
virtual void shine() = 0;
;
应该实现shine()
函数的类如下所示:
#pragma once
class White : public LightingState
public:
void shine();
private:
;
对于我的基类LightingState
,我没有.cpp
文件,因为我确实希望这个类是一个纯抽象类。
当我尝试应用建议的修复(为 Base 'LightingState' 实现纯虚拟)时,我收到一个警告窗口:
在图片中,你也可以看到我的类在同一个项目中。
【问题讨论】:
你没有包括你定义LightingState
的标题
在使用名称LightingState
(作为White
的基类)时,该名称不可见。代码需要一个#include
指令来提取定义类LightingState
的文本。
请在问题中以文本形式包含错误消息
void shine();
--> void shine() override;
【参考方案1】:
编译器在解析White
类的定义时,不知道LightingState
类型是什么,因为它还没有被定义。您需要在White.h
中添加#include "LightingState.h"
语句。
#pragma once
#include "LightingState.h" // <-- ADD THIS!
class White : public LightingState
public:
void shine();
private:
;```
【讨论】:
以上是关于C++ Visual studio2017无法输出中文或者输出中文时显示为乱码的主要内容,如果未能解决你的问题,请参考以下文章
无法在 Visual Studio 2017 (Native c++) 中禁用数据断点
Visual Studio 2017 15.5 打破 C++ TypeDefs
如何在 Visual Studio 2017、C++、CMake 中使用数据断点?