@JohanSolo
Your first trial should have difficulties to compile, or should at least crash when running, the char and int sizes are different: your read_buff is char*, i.e. each element is 1 byte, whilst the "%d" expects an object of at least 4 bytes.
While I agree in principle, most compilers don't care. This is C with variadic function(s) which basically means you can forget type-safety. What's happening is that fprintf if just reading memory it doesn't own (which most compilers will allow freely, i.e. it won't crash).
@Anas_Deshmukh
int empId1; // some integer
FILE * pun; // file pointer
char read_buff[] = { 0xAA, 0x2D, 0xFF }; // char array holding value as 0xAA, 0x2D, 0xFF . . .
int read_buff_size = 3; //< Size of the above buffer (in elements)
You can do it like this:
QFile file;
if (!file.open(pun, QFile::WriteOnly)) {
// Can't open, error handle accordingly.
}
QTextStream out(&file);
out << empId1;
for (qint32 i = 0; i < read_buff_size; i++)
out << "~0x" << QString::number(read_buff[i], 16);
out << endl;
file.close();
// Do not forget to close the FILE *
Kind regards.