问题描述:
visual studio code输出中文时总是出现乱码怎么办?
例如:
问题分析
可能是你在安装vc时,配置的环境出现了问题,导致语言配置和输出不一样,都会导致这个结果
解决方法:
1.打开设置
2. 在搜索框中打入encoding,找到Files: Encoding
3.将Encoding设置为Simplied Chinese(DB18030),就成功了!
设置结果展示
下面展示一段 代码
作为例子。
#include<iostream>
#include<cmath>
using namespace std;
void schedule(int k, int n, int** array);
int main()
{ int k; // 运动员的人数n=2^k
cout << "请输入k的值:";
cin >> k;
int n = pow(2, k); // 运动员的人数n=2^k
int** array = new int* [n+1]; // 循环赛日程表
for (int i = 0;i < n+1;i++)
array[i] = new int[n+1];
// 填充日程表
schedule(k, n, array);
// 输出日程表
cout << "\n循环赛日程表为:\n";
for (int i = 1;i <= n;i++)
{
for (int j = 1;j <= n;j++)
cout << array[i][j] << " ";
cout << "\n";
}
// 删除二维数组
for (int i = 0;i < n + 1;i++)
delete[] array[i];
delete[] array;
return 0;
}
void schedule(int k, int n, int** array) // 数组下标从1开始
{
for (int i = 1;i <= n;i++) // 第一行排1-n
array[1][i] = i;
int m = 1; // 用来控制每一次填表时i行j列的起始填充位置
for (int s = 1;s <= k;s++) // k指分成k大部分进行填充日程表;s指第几大部分
{
n = n / 2;
for (int t = 1;t <= n;t++) // 第s部分内的循环
{
for (int i = m + 1;i <= 2 * m;i++) // 行
{
for (int j = m + 1;j <= 2 * m;j++) // 列
{
array[i][j + (t - 1) * m * 2] = array[i - m][j + (t - 1) * m * 2 - m]; //左上角等于右下角的值
array[i][j + (t - 1) * m * 2 - m] = array[i - m][j + (t - 1) * m * 2]; //左下角等于右上角的值
}
}
}
m *= 2;
}
}
设置之后的结果:
可以看到输出正常的中文了!