我想发布这个是因为我不确定我在一个简单的赋值语句中遇到了什么问题.我正在做一个家庭作业,要求我在一个简单的程序中编写结构和函数来绘制ASCII字符的形状.现在我只是想测试我编写的函数,我试图为Circle结构的符号元素赋值,只是为了测试我写的DrawShape函数.当我尝试为它分配一个*char时,我收到一条错误消息"错误:从'const char*'无效转换为'char'".我会将整个代码放入其中,尽管它很长且未完成.任何帮助都将不胜感激.我得到的问题是在"circle1.char ='*'"的主要开头
#include <iostream>
#include <math.h>
#include <cstdlib>
using namespace std;
const int NUMBER_OF_ROWS = 26;
const int NUMBER_OF_COLUMNS = 81;
char drawSpace[NUMBER_OF_ROWS][NUMBER_OF_COLUMNS];
struct Point{
int x;
int y;
};
struct Circle{
Point center;
int radius;
char symbol;
bool buffer[NUMBER_OF_ROWS][NUMBER_OF_COLUMNS];
};
bool setCircleRadius(Circle &b, int r);
bool setCircleCenter(Circle &b, int x, int y);
bool moveCircle(Circle &b, int x, int y);
void drawCircle (Circle b);
void lineChars(Line a);
void circleChars(Circle b);
void drawShapes();
int main() {
Circle circle1;
circle1.radius = 5;
circle1.symbol = "*";
circle1.center.x = 40;
circle1.center.y = 10;
drawCircle(circle1);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
Pla*_*ure 22
你应该使用单引号作为字符.双引号表示您正在使用(可能是单字符)字符串文字,表示为const char *(指向常量字符的指针).
正确的语法: circle1.symbol = '*';
问题出在这里:
circle1.symbol = "*";
Run Code Online (Sandbox Code Playgroud)
circle1.symbol被定义为char,但你为它分配一个字符串(一个字符数组).你需要做的是
circle1.symbol = '*';
Run Code Online (Sandbox Code Playgroud)