Depende del sistema que se este usando pero:
int : 4 bytes
long : 4 bytes
En lo mas profundo son siempre lo mismo
int : 4 bytes
long : 4 bytes
En lo mas profundo son siempre lo mismo
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menúfclose (newFile);
#include<stdio.h>
int main(){
FILE * pFile;
FILE * newFile;
long size;
pFile = fopen ("Hola.exe","rb");
newFile = fopen("EXE.exe","w+b");
if (pFile==NULL && newFile==NULL) perror ("Error opening file");
else
{
printf("Leyendo archivo\n");
fseek ( pFile , 0 , SEEK_END );
size=ftell (pFile);
printf("Total de bytes: %d\n",size);
fseek ( pFile , 0 , SEEK_SET );
unsigned char buffer;
for(int i = 0; i < size ; i++ ){
fread(&buffer,1,1,pFile);
//printf("%c",buffer);
fwrite(&buffer, 1, sizeof(buffer), newFile);
}
}
fclose (pFile);
getchar();
return 0;
}
Cita de: x64Core en 28 Febrero 2014, 19:24 PM
La salida esta bien, así es como son representados los caracteres en ANSI-ASCII.
Los ejecutable no tiene nada que ver con la codificacion de caracteres. Podes abrir algun ejecutable con un editor hexadecimal
y se mostrara la representación en hexadecimal y la codificación que tenga establecida generalmente ANSI-ASCII. para hacerlo
así como ellos podes usar sprintf pasando byte por byte.
Cita de: do-while en 28 Febrero 2014, 19:49 PM
¡Buenas!
No intentes utilizar la función feof para saber si has llegado al final de un archivo binario. Te puede dar falsos positivos, y la mayor parte de las veces te los dará (no me preguntes porqué), y no podrás leer el contenido del archivo.
Primero tienes que saber el tamaño, en bytes, del fichero (utilizando por ejemplo ftell y fseek), y luego empiezas a leer datos desde el principio hasta alcanzar el numero de bytes que tenga el fichero.
Si no conoces las fuciónes anteriores en www.cplusplus.com encontraras mas información.
¡Saludos!
#include<stdio.h>
int main(){
FILE *file;
unsigned char buffer;
//file = fopen("Prueba.txt","r+");
file = fopen("HolaMundo.exe","r+");
if(file!=NULL){
//printf("Archivo Abierto con exito.");
//fread(&buffer,1,1,file);
//printf("%c",buffer);
int linea = 1;
while (fread(&buffer, 1, 1, file) == 1) // expecting 1
// element of size
// BUFFER_SIZE
{
// process buffer
// print format
if(linea>=1 && linea<=8)
printf(" %c",buffer);
if(linea==8)
printf(" - ");
if(linea>=9 && linea<=15)
printf(" %c",buffer);
if(linea==16){
printf("\n");
linea=0;
}
linea++;
}
if (feof(file))
{
// hit end of file
}
else
{
// some other error interrupted read
}
fclose(file);
}else{
printf("Apertura del Fichero no fue exitosa.");
}
getchar();
return 0;
}