Fstream读取功能不会将数据写入指定的地址

时间:2019-12-17 21:42:48

标签: c++ fstream

我的问题与以下代码有关:

void znajdzNastepnyElement(fstream& baza, unsigned int& licz_zaglebienie, unsigned long long int& kursor, unsigned long long int& poczatek_elementu, const unsigned int& dl_baza) {
    char znak = '\0';
    if (kursor <= dl_baza) {
        while (znak != '{' && kursor <= dl_baza) {
            baza.seekg((kursor) * sizeof(char), ios::beg);
            baza.read(&znak, sizeof(char));
            cout << endl << "Znak =" << znak << "Kursor = " << kursor << endl;
            if (znak == '{') {
                licz_zaglebienie++;
                poczatek_elementu = kursor;
            }
            if (znak == '}')
                licz_zaglebienie--;
        kursor++;
        }
        cout << "Szukam elementu" << endl;
    }
}

从根本上讲,它是要在json文件中找到以下“ {”字符(充满了这些花括号)。对该函数的调试表明,只有在第一次执行程序时,该函数才会将“ {”保存到&znak中,此后,除了“ \ 0”之外什么都没有(实际上取决于我在{{1}行中保存到'znak'中的内容})替换该值。更令人困惑的是,它仅在json文件中的第一个字符为“ {”时才发生,每个下一个匹配字符对程序都没有这种影响。需要明确的是,“ {”的出现不会导致函数外的任何形式的“ fstream close”。

0 个答案:

没有答案