Действующее сомнение во вводе “>>”

У меня есть следующая функция:

CLliga::CarregaDades(const char* nomFitxer)
{
ifstream  fitxer(nomFitxer);

    if (fitxer.is_open())
    {
        int i = 0;
      (1)  fitxer >> m_numJornadas;

        delete[] m_pJornadas;

        m_pJornadas = new CJornada[m_numJornadas];

        for(i=0; i<m_numJornadas; i++)
        {
        (2)   fitxer >> m_pJornadas[i];
        }
        fitxer.close();
    }
}

Мое сомнение находится как в (1), так и в (2), который называет оператор, помещенный в другом классе, но я не понимаю, что он делает точно однажды в operador.: Сохраняй в переменной fitxer стоимость numjornadas и после sobrescribe со стоимостью array m_pJornadas?

1
задан 23.03.2017, 22:18
1 ответ
ifstream  fitxer(nomFitxer);

Верьте в file stream с прошлым именем, как я доказываю. Открой файл, мы идем.

, Если вышеупомянутый файл был открыт правильно...

fitxer >> m_numJornadas;

не наблюдает declaraci¦n m_numJornadas, но, следующих l¦-neas, мы приходим к заключению о том, что это один int (или сходный; переменная numérica, мы идем).

Этот l¦-nea читает один número ранее открытого файла.

delete[] m_pJornadas;
m_pJornadas = new CJornada[m_numJornadas];

m_pJornadas - указатель , типа CJornada *;

предыдущие l¦-neas освобождают блок памяти, заблаговременно указанный m_pJornadas, и распределяют новый блок памяти, со способностью содержать m_numJornadas (стоимость которых мы получили заблаговременно файла).

fitxer >> m_pJornadas[i];

Внутри Цикла, идет наполняя блок памяти, размещенный раньше с данными CJornada s, который мы получаем от файла.

Вкратце: открой файл, прочитай número элементов, которые нужно читать, распредели mem¦ria для выражения número элементов, и он читает их и размещает в вышеупомянутый блок mem¦ria.

Ten¦-Хозяев список элементов, и мы заменяем ее новым списком элементов.

ИЗДАЛ

, Чтобы отвечать на комментарии:

Â: Что он показывает ему, что линия документа читать?

Начинает с начала; он читается точно después открытия этого, asà - что начинает из-за байт 1 из файла.

Первое чтение, кроме того, что оператор ifstream::operator>>( ) esté пересочинение, читает целое число; Â: tamaño? До тех пор, пока он не прибудет к \n.

Â: Каждое все, что загружается в следующую линию?

Как estÃ: читая CJornada s, мы это не знаем ; мы не знаем, - один typedef algún тип ли bÃ: sico, или собственный класс. В этом último я вступаю в брак, смоги определить ofstream::operator>>( std::ofstream &, CJornada & ), с которым он может читать формы, которую вышеупомянутый класс считает подходящей: байт в байт , l¦-nea в l¦-nea (до \n), 300 в 300 байт ...

2
ответ дан 24.11.2019, 10:25
  • 1
    Спасибо он у меня остался достаточно более ясным, кроме в операторе ¿ что он показывает ему, что линия документа читать, каждое все, что загружается в следующую линию? – ElPatrón 23.03.2017, 22:40
  • 2
    @ElPatró n изданный Ответ. – Trauma 23.03.2017, 22:53

Теги

Похожие вопросы