Re: Pointer conversion problem
"Kat" <Rem.Intellegare@gmail.com> wrote in message
news:1146074398.270128.94770@y43g2000cwc.googlegroups.com...
Ok so I finally fixed most of the problems in this program but I've
come up with even more. My program(if you saw earlier) is a program
for secure file deletion as part of a project. I'm using Visual Studio
6.0(my school refuses to upgrade, I don't know why nor can I persuade
them otherwise) Visual C++.
Here's a snippet of the code I'm having problems with.
//Begin Code\\
long size;
infile.seekg(0,ifstream::end);
size = infile.tellg();
infile.seekg(0);
infile.close();
ofstream outfile (fileloc,ofstream::binary);
outfile.write (zero,size);
How is zero defined? By your error message it would seem it's defined as in
integer pointer. But you want to write a character. Is it an array?
Simplest way would be to make zero a character (array?) of '\0' instead of
an int with value 0. Of course the size of it has to be as big as size
though.
I believe what you actually want to do here is write the character '\0' size
times. You can either create an array and initialize it to '\0'
(std::vector<char> perhaps) or put your write in a for loop writing one char
size times.
char zero = '\0';
for ( int i = 0; i < size; ++i )
outfile.write(&zero, size);
is one way of doing it.
An alternative is to simply cast your zero to a char pointer, as long as you
know that it's the proper size. I wouldn't do this, however, I'd just make
it chars.
//End Code\\
Bellow is the error given by the compiler.
//Begin Error\\
Z:\SecureIO.cpp(172) : error C2664: 'write' : cannot convert parameter
1 from 'const int *' to 'const char *'
Types pointed to are unrelated; conversion requires
reinterpret_cast, C-style cast or function-style cast
//End Error\\
How do I fix this problem?