蒟蒻提问
  • 板块灌水区
  • 楼主封禁用户
  • 当前回复9
  • 已保存回复9
  • 发布时间2023/8/11 10:47
  • 上次更新2023/11/3 04:32:47
查看原帖
蒟蒻提问
782733
封禁用户楼主2023/8/11 10:47

众所周知

中文汉语一个字放到一个C++字符串中会占两个字符的位置

而现在我正想用C++做一个汉语的文字小游戏

而我才做到开场就遇到问题了 开场如下

/*
草草草花草草草草草草石草草草草草草草草草
道道道道道道道道道道道道道道道道道道道道
路路路路路路路路路路路路路路路路路路路路
路路路路路路路路车车车车路路路路路路路路
路路路你路路路路车车车车车路路路路路路路
路路路路路路路路车车车车路路路路路路路路
路路路路路路路路路路路路路路路路路路路路
道道道道道道道道道道道道道道道道屎道道道
草草草花草草草草草草花石草草草草草花草草
 */ 

我想通过改变输出文字颜色来使一些文字更醒目

所以在输出时,我这么写道

for(int i=0;i<10;i++){
		for(int j=0;j<50;j++){
			if(beg[i][j]=='草'){
				SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN);//设置绿色 
				cout<<beg[i][j]; 
			}
			else if(beg[i][j]=='花'){
				SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED);//设置红色   
				cout<<beg[i][j]; 
			}
			else if(beg[i][j]=='石'){
				SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_RED |FOREGROUND_GREEN | FOREGROUND_BLUE);//设置三色相加 白色 
				cout<<beg[i][j]; 
			}
			else{
				cout<<beg[i][j];
			}
		}
		cout<<endl;
	}//beg是开场地图

然而意外出现了

输出的地图并未改变颜色,Dev-C++还给了我一个黄牌警告

【warning】 multi-character character constant 【-wmultichar】

警告:多字符字符常数

问一下大佬该如何解决

ort

2023/8/11 10:47
加载中...