Как записать символьные массивы с пробелами в двоичные файлы в C ++? И как их читать? - PullRequest
0 голосов
/ 01 мая 2020

Сейчас я делаю свой курсовой проект в университете. Мне нужна помощь. Я хочу создать простой словарь. И я использую двоичный метод файла, чтобы сделать это. В следующем коде я пытаюсь написать строки текста, который также содержит пробелы. Но я получаю неправильный вывод. Кто-нибудь может мне помочь написать тексты с пробелами в двоичные файлы и прочитать их?

//These are global variables in my code
string sword;
string sdefinition;

Вот мой класс:

class Input
{
public:
    char word[50];
    char definition[300];
    void input()
    {
        cout << "Enter a new word: ";
        getline(cin, sword);
        sword.copy(word, sword.size() + 1);
            cout << "Enter the definition: ";
        getline(cin, sdefinition);
        sdefinition.copy(definition, sdefinition.size() + 1);
    }
    void output()
    {
        for (int i = 0; i < strlen(word); i++)
        {cout << word[i];}
        cout << endl;

        for (int i = 0; i < strlen(definition); i++)
        {cout << definition[i];}
        cout << endl;
    }
};

Это моя основная функция:

int main()
{
    ofstream a("data", ios::app | ios::binary);
    Input i;
    i.input();
    a.write((char*)&i, sizeof(i));
    a.close();
    ifstream b("data", ios::binary);
    b.read((char*)&i, sizeof(i));
    i.output();
    b.close();
    return 0;
}
...