Сохранение вектора строк на диск не работает должным образом. Я вижу, что этот файл создан, но с 0 байтами и без записей. Примечание: Я компилирую код C++ в ОС MAC на Xcode (v4.3.3).Сохранить вектор строки на диск не работает
Декларация вектора и строка:
vector<string>taskVector;
string newTaskEntry;
Это, как я добавить новые строки в массив, а программа работает:
taskVector.push_back(newTaskEntry);
При выходе пользователя программы я делаю это:
fstream file;
file.open("data.txt", ios::out | ios::trunc);
for (int i = 0; i > taskVector.size(); i++) {
file.write(taskVector[i].c_str(), taskVector[i].length());
file.close();
Любая идея, почему я не вижу никаких записей? Во-вторых, можете ли вы дать мне подсказку, как читать данные, когда я могу сохранить содержимое на диск?
Вы можете взять текст 'file.close()' из тела цикла. – kratenko
СПАСИБО МУЖЧИН. Это была проблема. –
Вместо итерации по индексу вы можете использовать итератор.См. ['Vector :: begin'] (http://www.cplusplus.com/reference/stl/vector/begin/) и [' vector :: end'] (http://www.cplusplus.com/reference/stl/vector/end /) для получения дополнительной информации. Итераторы не будут уязвимы для использования неправильного порядка ('>' вместо '<'). – outis