Я посылаю массив из 5 строк в функцию, которая будет записывать их в двоичный файл. Моя проблема в том, как я могу это сделать? Как проверить размер массива, если я отправляю его указателем? Я включил #include <string>
и using namespace std;
.Как написать массив строк в двоичный файл?
void my_func(string *array, int n)
{
ofstream my_file("file.bin", ios_base::binary);
if (!my_file)
{
cout << "error" << endl;
return;
}
my_file.write((char*)array, n*sizeof(string));
my_file.close();
}
void fun1()
{
string array[5];
for (int i = 0; i < 5; i++)
{
cout << "enter word " << i + 1 << ": ";
getline(cin, array[i]);
}
my_func(array,5);
return;
}
Так что это работает, но я использую слишком много байтов для ничего, я хочу взять правильное количество байтов. Или, если есть простой способ сделать все это, я буду благодарен. И, пожалуйста, дайте мне школьный пример, я студент.
Выход:
Как определен 'string'? –
@LogicStuff я опубликую изображение – Kira
Вы пишете саму реализацию 'std :: string' в файл вместо его содержимого. – Lingxi