所以,我需要为我的作业挽救这个大型程序,但我无法理解我在函数中获得此字符串数组的错误。
at = stockSymbol =""""
我一直收到错误
'错误:值类型" const char *"不能分配给类型" std :: string *"
的实体
我包括了字符串的定义和功能。任何人对于发生了什么以及如何解决这个问题都有任何想法?
int menu()
{
int actents = 0;
int opt = 0;
string stockSymbol[MAXENTS];
double stockShares[MAXENTS];
double stockPrice[MAXENTS];
int opt;
string opts;
void resetPortfolio(string stockSymbol[], double stockShares[], double stockPrice[], int & actents)
{
// code logic to set all entries of the stock symbol array to ""
stockSymbol = "\"\"";
// code logic to set all entries of the other arrays to 0
stockShares = 0;
stockPrice = 0;
// set the number of actual entries in the arrays (actents) to 0
actents = 0;
return;
}
答案 0 :(得分:1)
stockSymbol
,stockShares
和stockPrice
都是指向数组第一个元素的指针。您不能只指定它们来设置元素的值。相反,您需要遍历数组并设置每个元素的值。
void resetPortfolio(string stockSymbol[], double stockShares[], double stockPrice[], int & actents)
{
for (int i = 0; i < actents; ++i) {
// code logic to set all entries of the stock symbol array to ""
stockSymbol[i] = "";
// code logic to set all entries of the other arrays to 0
stockShares[i] = 0;
stockPrice[i] = 0;
}
// set the number of actual entries in the arrays (actents) to 0
actents = 0;
}
您发布的代码还有其他问题。 menu()
永远不会关闭,您实际上永远不会致电resetPortfolio()
。
答案 1 :(得分:0)
您的功能menu
未关闭。
string stockSymbol[MAXENTS];
double stockShares[MAXENTS];
double stockPrice[MAXENTS];
这些应该在menu
内部还是外部?
""""
表示字符串""
。如果你一起写2个字符串,则意味着字符串的连接。
使用值
设置填充数组for(var i=0; i<MAXENTS; i++)
stockSymbol[i]="\"\"";
for(var i=0; i<MAXENTS; i++)
stockShares[i]=0;
for(var i=0; i<MAXENTS; i++)
stockPrice[i]=0;