Мое назначение требует использования структур и файловых операций fstream для программы инвентаризации. Отображается меню, и пользователь может добавить новую запись в файл, редактировать существующие файлы и просматривать. То, что я имею, следует.
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
void addRecord(fstream &);
void viewRecord(fstream &);
void changeRecord(fstream &);
const int desc = 50;
const int da = 9;
struct inventory
{
char description[desc];
int quantity;
float w_cost; // wholesale cost
float r_cost; // retail cost
char date[da];
};
int main()
{
int choice;
fstream warehouse("inventory.dat", ios::out | ios::in | ios::binary);
do
{
cout << "Welcome to the Intentory System\n";
cout << "--------------------------------" << endl << "1.) Add a new record\n" << "2.) View a record\n"
<< "3.) Edit Record\n" << "4.) Quit\n";
cin >> choice;
if (choice < 1)
{
cout << "Invalid option, please choose between 1 and 4\n";
cin >> choice;
}
switch (choice)
{
case 1:
addRecord(warehouse);
break;
case 2:
viewRecord(warehouse);
break;
}
}while(choice != 4);
}
void addRecord(fstream &inv)
{
inventory item;
fstream warehouse("inventory.dat", ios::out | ios::in | ios::binary);
cout << "Enter description\n";
getline(item.description, desc);
cout << "Enter quantity\n"
getline(item.quantity);
cout << "Enter whole sale cost\n";
getline(item.w_cost);
cout << "Enter retail cost\n";
getline(item.r_cost);
cout << "Enter the date added\n";
getline(item.date);
}
Я еще не определил viewRecord или changeRecord. Моя основная проблема - это ошибка, которую я получаю при использовании функции getline ().
Ошибка, которую я получаю, начинается со строки, содержащей
getline(item.description, desc)
Ошибка гласит [Ошибка] нет соответствующей функции для вызова getline (char [50], const int &) '