2016-03-16 1 views
0

Я работаю над проектом, где мне нужно написать функцию для вставки одного изображения поверх другого. Назовем это вставкой и оригинальным изображением (исходное изображение - это изображение, которое нужно вставить). Я использую C++ fstream.Чтение и запись потоков файлов одновременно для двух разных файлов в C++

Поэтому мне нужно будет прочитать вставное изображение и записать его в исходное изображение. Оба фильтра будут открыты, есть ли какой-либо неофициальный стандарт, который говорит, что я не должен этого делать, то есть открытие двух файлов - чтение из 1 и запись другому?

ответ

1

Если вы читаете тот же файл, который вы пишете, через другой объект потока, то фактические результаты определяются реализацией. Вы можете закончить переписывание частей файла, который вы еще не прочитали, тем самым нарушив ввод.

Самый переносимый способ реализовать это - написать новый контент в новый файл с другим именем файла, а затем, после завершения всего процесса, и оба файла будут закрыты, переименуйте новый файл в исходное имя файла.

+0

Нет Я не читаю и не пишу в тот же файл. Итак, скажем, я уже прочитал исходное изображение и сохранил его в некоторой переменной «originalImage». Я хочу одновременно прочитать вставное изображение и изменить переменную 'originalImage', а затем записать его в другой файл. – nm17

+1

В этом случае проблем нет. Приложения постоянно читают и записывают несколько файлов одновременно. –