2015-06-20 3 views
0

У меня есть программа, которая в несколько раз использует fstream для сохранения файлов. Он отлично работает при работе в microsoft vs, но когда я скомпилирую выпуск и переношу .exe на свой рабочий стол, он не будет записывать файлы там.C++ fstream confusion

ofstream save; 
save.open("Data\\options.scav"); 
/*Write stuff to file*/ 

Это отлично работает в Visual Studio, но если я принесу его на моем рабочем столе, и даже создать папку данных для него, он не пишет. Любая помощь будет оценена по достоинству.

+0

ли работа, если вы удалите данные \\? –

+0

@AngusComber да, так делает. –

+1

Тогда вы знаете причину. Создайте папку «Данные», если она еще не существует. –

ответ

1

Вы не можете писать путь, который еще не был создан.

Делай так:

// check Data folder exists 
ofstream save; 
save.open("Data\\options.scav"); 

Обратите внимание, что по причинам переносимости вы можете также сделать это (на Windows, или Unix):

// check Data folder exists 
ofstream save; 
save.open("Data/options.scav");