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);
}