Вывод из файла с помощью функции

название говорит само за себя

Это мой код: У меня есть класс House, где я определяю значения.

class HOUSE
{
public:
    int id;
    string 1;
    string 2;
    string 3;
    int an;


};

template<class Type>
class table
{
public:

    vector<Type> V;
    //double inceput;
    //double sfirsit;
    //int comparatii;
    //int interschimbari;   
public:
    table();
    void print();
    void liniar();
};

template<class Type>
table<Type>::table()
{
    ifstream file("file.txt");
    ifstream file1("file1.txt");

    if (file.fail() || file1.fail())
    {
        cerr << "Eroare la deschiderea fisierului!" << endl;
        _getch();
        exit(1);
    }

    HOUSE* value = new HOUSE;

while (!file.eof() || file1.fail())
{
    file >> value->id;
    file >> value->tara;
    file >> value->brand;
    file >> value->culoare;
    file >> value->an;

    this->V.push_back(*value);
}


file.close();

}

Функция печати для значений

template<class Type>
void table<Type>::print()
{

    cout << endl << setw(50) << "AFISAREA DATELOR" << endl;
    cout << setw(5) << "Id" << setw(15) << "1" << setw(20) << "2" << setw(17) << "3" << setw(20) << "an" << endl << endl;
    for (int i = 0; i < this->V.size(); i++)
    {
        cout << setw(5) << this->V.at(i).id << setw(15)
            << this->V.at(i).1<< setw(17)
            << this->V.at(i).2<< setw(17)
            << this->V.at(i).3<< setw(25)
            << this->V.at(i).an << endl;
    }
    cout << endl << "Dimensiunea tabelului  n= " << V.size() << endl;

}


{
        file >> value->id;
        file >> value->1;
        file >> value->2;
        file >> value->3;
        file >> value->an;

        this->V.push_back(*value);
    }


    file.close();

}

в основном

int main() {

    table<MOBILE>* file = new table<MOBILE>();
    table<MOBILE>* file1 = new table<MOBILE>();

 file ->print();    
 file1 ->print();

Это полный код по запросу. Нужно как-то распечатать данные из файла1 и файла2. Спасибо

Проблема idk, если называется правильно. Так как файл ->печать();
файл1 -> печать (); оба печатают данные только из файла Ошибок нет вообще

но печатает только из первого файла: каково поведение? У вас есть сбой, останавливающий выполнение? Боюсь, ни заголовок, ни основная часть вопроса не говорят всего, и даже не достаточно...
bruno 03.02.2019 16:44

Каков ваш вопрос об этом коде?

Oleg 03.02.2019 17:47

Вы не включили код для MOBILE. Я не могу поверить, что этот код компилируется с ошибкой, этот код string 1; является ошибкой компиляции. Кажется, есть и другие ошибки.

john 03.02.2019 18:00

Если вы хотите, чтобы код печатал файлы filetxt и file1.txt, вам нужно передать имя файла для использования в конструктор table.

john 03.02.2019 18:02

table<MOBILE>* файл = новая таблица<MOBILE>(); table<MOBILE>* file1 = new table<MOBILE>(); должно быть table<HOUSE>* file = new table<HOUSE>(); таблица<ДОМ>* файл1 = новая таблица<ДОМ>(); Я не могу заставить его выводить содержимое из обоих файлов. файл -> печать (); файл1 -> печать (); оба выводят содержимое из файла, в то время как файл и файл1 имеют разное содержимое

Mark 03.02.2019 18:04

Код, который вы разместили, не компилируется, но вы говорите, что это так. Это должно быть вставлено как один непрерывный фрагмент кода. См.:Как создать минимальный, полный и проверяемый пример

lakeweb 03.02.2019 18:10

Размещенный код был для информационных целей, где могут быть изменения/ошибки. Джон решил мою проблему. Спасибо всем

Mark 03.02.2019 18:15
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
7
56
1

Ответы 1

В вашем коде много ошибок. но я проигнорирую это и просто отвечу на то, что, как мне кажется, является вашим настоящим вопросом.

Вам нужны два объекта table, один из которых читает из file.txt, а другой читает из file1.txt. Для этого вы должны передать имя файла в конструктор table::table, чтобы он знал, из какого файла читать. Нравится

template<class Type>
class table
{
    ...
public:
    table(const char* filename); // constructor takes filename parameter
    ...
};


template<class Type>
table<Type>::table(const char* filename)
{
    ifstream file(filename); // open filename
    if (file.fail())
...


int main() {

    table<MOBILE>* file = new table<MOBILE>("file.txt"); // read from file.txt
    table<MOBILE>* file1 = new table<MOBILE>("file1.txt"); // read from file1.txt

    file ->print();    
    file1 ->print();
}

Спасибо! Это решило мою проблему. Что касается других противоречий, то речь идет о шаблонах. Я не беспокоюсь о них. Ваше здоровье

Mark 03.02.2019 18:13

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