C++ чтение файла построчно в массиве

В общем, моя программа разделена на 3 файла: заголовок, реализация, основной файл.
заголовок:

#ifndef CUSTOMER_H
#define CUSTOMER_H
#include <string>
using std::string;
#include <fstream>
using std::ofstream; // Output file class
using std::ifstream; // Input file class
class MenuList {
private:
    int _itemNo;
    string _category;
    string _descript;
    double _price;
public:
    MenuList();
    void readin(ifstream& infile); // Read customer from file
    void display();
    void order();
};
#endif

реализация:

#include "prog2Head.h"
#include <iostream>
using std::cout;
using std::cin;
// Default constructor
MenuList::MenuList() : _itemNo(0), _category(""), _descript(""), _price(0.0) { }


// Read customer details in from file
void MenuList::readin(ifstream& infile) {
    infile >> _itemNo;
    getline(infile, _category, ':');
    getline(infile, _descript, ':');
    infile >> _price;


}
// Display customer details
void MenuList::display() {
    cout << _itemNo  << ' ' << _category << " - " << _descript <<"\t\t";

}

void MenuList::order() {
    char cont;
    int qty;
    cout << "Order:\n";
    cout << "__________\n";
    do{
        cout << "Item: ";
        cin >> _itemNo; 
        cout << "Quantity: ";
        cin >> qty;
        cout << "Continue?(y)";
        cin >> cont;
    } while(cont == 'y');

}

и главное:

#include "prog2Head.h"
#include <iostream>
using std::cout;
using std::endl;
using std::cin;
#include <fstream>
using std::ofstream; // Output file class
using std::ifstream; // Input file class
int main() {
    ifstream fromDisk("menu.txt"); // Open file for reading
    while(!fromDisk.eof()) { // Loop until end of file is reached
        MenuList menu; // Create customer object
        menu.readin(fromDisk); // Read customer from file
        if(!fromDisk.eof()) { // Display customer
            menu.display();
        }
    }
    MenuList menu;
    menu.order();
    return 0;
}

И файл как:
1 рыбное блюдо: рыба и чипсы:21
2 мясное блюдо: стейк и дк:15,3
3 мясное блюдо: баранина и дк:21,9

Где последний номер - цена, а первый - идентификатор. Я хочу ввести идентификатор и отобразить цену товара с этим идентификатором. Я знаю, что это как-то связано с созданием массива, но я искал некоторое время и до сих пор не могу заставить его работать.

0 ответов

Другие вопросы по тегам