Мне нужно создать временный файл, заполнить его некоторыми данными и отправить результат функции, которая принимает только std::istreams
.Создать временный файл в C++
Я попытался с помощью tmpfile() и это работает для моего первого требования - «создать файл и заполнить его с некоторыми данными», но она возвращает FILE*
и нет никакого способа, чтобы преобразовать его (насколько я знаю), чтобы std::streams
,
Есть ли способ создания временного файла на C++? Если это невозможно, насколько надежным является tmpnam, чтобы вернуть допустимое имя файла? Кто-нибудь тестировал это на Android или iOS?
EDIT: я не хочу копировать данные в std::stringstream
, так как часть моего теста считывает данные с диска.
«* отправить результат функции, которая принимает только std :: istreams. *« Не файл, а: знаете ли вы istringstream? – deviantfan
Я не хочу копировать данные. Часть моих тестов читается с диска ... – Felics
Есть ли какая-то особая причина, по которой вы считаете, что 'tmpnam' не будет делать то, что вы хотите? –