2016-07-21 3 views
0

Я нашел несколько связанных потоков, но ни у кого не было четкого, полного решения этой задачи.Переключение между режимами fstream trunc и app с помощью переменной

Мне нужно выбрать openmode моего потока во время выполнения в консоли, и я не совсем понимаю поток необходимых объявлений. Мне нужно некоторое сочетание таких вещей, как:

std::ios_base::openmode myopenmode; 
std::ios::openmode myopenmode; 
std::ofstream::openmode myopenmode; 
myopenmode = trunc; //??? or something. 

И быть в состоянии установить значение myopenmode в Trunc или приложение, однако синтаксис, который идет так в конце концов, у меня есть что-то вроде этого:

myfilestream.open(filename, myopenmode); 

Я просто не мог найти это в документации.

ответ

0

Хорошо, я думаю, что все получилось. Вид очевидный, как только я это сделал.

std::ofstream::openmode myopenmode = std::ofstream::trunc; // set to trunc 
std::ofstream::openmode myopenmode = std::ofstream::app; // set to app 
myfilestream.open(filename, myopenmode); 
0

Второй параметр открытым является битовая см

http://www.cplusplus.com/reference/ios/ios_base/openmode/

Я бы сказал, что, когда вы берете на входе либо просто получить его как правильный битовую маску или преобразовать ваш вклад в надлежащее битмаски с операторами if/else или switch.

+0

Не могли бы вы отредактировать свой ответ на примере того, какой код выполняет то, что вы говорите? – Michael

Смежные вопросы