I want shift char array from read file and write output. but i got 2 errors. i dont know with this error.
no suitable conversion function from "std::valarray" to "const char *" exists
'std::basic_ostream> &std::basic_ostream>::write(const _Elem *,std::streamsize)': cannot convert argument 1 from 'std::valarray' to 'const _Elem *'
void CaesarCipher(std::wstring i_inputFilePath, std::wstring o_outputFilePath, int shift)
{
    ifstream file(i_inputFilePath, ios::binary);
    if (file.is_open())
    {
        ofstream output(o_outputFilePath, ios::binary);
        std::array<char, 1024> buffer;
        while (!file.eof()) {
            file.read(buffer.data(), buffer.size());
            std::rotate(buffer.begin(), std::next(buffer.begin(), shift), buffer.end());
            output.write(buffer, buffer.size());
        }
        output.close();
        file.close();
    }
    else
    {
        cout << "File is not exist";
    }
}
int main()
{
    CaesarCipher(L"D:/input.exe", L"D:/output.exe", 1);
}
 
    