Хотя это действительно C ++, это не очень приятно C ++.
Читатель вашего кода должен помнить, что переменная str
является изменчивой и служит другой цели в вашем файле кода. Когда код вставляется между вторым назначением str и используется в качестве имени файла, читателю может быть трудно выяснить, что находится в переменной.
Всегда лучше дать вашим переменным разумное имя; тогда оно почти всегда становится постоянным.
const char* inputpath("in.dat");
ifstream inputstream( inputpath, ... );
const char* outputpath("out.dat");
... lots of code
ofstream outputstream( outputpath, ... );