我尝试创建一个程序,将项目库存存储到动态数组中,同时跟踪itemID,项目描述,数量和价格。唯一的问题是我得到一个未解决的外部符号错误
"struct inventory item * * list", fatal error LNK1120.
知道问题是什么或如何解决它?
#include <iostream>
#include <fstream>
#include <string>
#include <cctype>
#include <vector>
using namespace std;
struct inventoryitem{
char itemid[7];
string itemDesc;
int quantity;
float price;
float retailprice;
};
inventoryitem *list[];
void add();
void edit();
void search();
void display();
void remove();
void textfile();
int main(){//main menu
while(true){
cout << "\nInventory Database Manager\n";
cout << "_____________________________\n";
cout << "What would you like to do?\n";
cout << "1) Add item to database\n";
cout << "2) Edit item in database\n";
cout << "3) Search the database for an item\n";
cout << "4) Delete an item in database\n";
cout << "5) Display all items\n";
//cout << "6) Exit program\n";
cout << "Input command (1-5)\n\n";
int input;
cin >> input;
switch(input){
case 1: add();
case 2: edit();
case 3: search();
case 4: remove();
case 5: display();
default : cout << "\nError, invalid input, try again";
}
}
}
int inc = 0;
void add(){
inventoryitem item;
cout << "\nEnter Item ID (3 letters followed by 4 digits)\n";
cin >> list[inc]->itemid;
for(int x = 0; x < 6; x++){//validates the item ID, checks if the first 3 digits are numbers first, then the next 4
if(x < 2){
if(isalpha(item.itemid[x])){
//do nothing
}
else{
cout << "Error, itemID is 3 letters followed by 4 digits";
break;
}
}
if(x > 2){
if(isdigit(item.itemid[x])){
//do nothing
}
else{
cout << "Error, itemID is 3 letters followed by 4 digits";
break;
}
}
}
cout << "Enter the item's description\n";
cin >> list[inc]->itemDesc;
cout << "Enter the quantity of item\n";
cin >> list[inc]->quantity;
cout << "Enter the price of the item\n";
cin >> list[inc]->price;
cout << "Enter the retail price of the item\n";
cin >> list[inc]->retailprice;
}
void edit(){}
void search(){}
void display(){}
void remove(){}
void textfile(){}
答案 0 :(得分:3)
Clang为此行发出了更有用的编译器错误:
inventoryitem *list[];
具有数组类型的变量的定义需要显式大小或初始化程序
在C ++中,您最好使用可用的许多containers中的一个。 E.g:
std::list<inventoryitem>