Застрял в программе инвентаризации с использованием структур для C ++ - PullRequest
0 голосов
/ 02 ноября 2019

Мое назначение требует использования структур и файловых операций 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 &) '

...