Oppure

Loading
11/10/11 19:58
Umberto
Scusatemi se mi intrometto , ma mi hanno insegnato che non conviene fare in c programmi ad alto lv.
potresti aprila con un comando system usando quindi il programma predefinito del sistema.
aaa
11/10/11 20:02
Postato originariamente da Umberto:

Scusatemi se mi intrometto , ma mi hanno insegnato che non conviene fare in c programmi ad alto lv.
potresti aprila con un comando system usando quindi il programma predefinito del sistema.


Scusa Umberto, ma questo non c'entra. Lui vuole aprire il file per leggerlo byte per byte (e farci delle operazioni) non per vedere l'immagine ...
12/10/11 12:28
Andrea10
Sono riuscito ad aprire il file jpg. Ma trovo i dati in Ascii.
Come potrei fare per convertirli o leggerli sotto forma di dati esadecimali sempre da codice?

Grazie a tutti
aaa
12/10/11 12:30
I dati non sono in ASCII o esadecimali. I dati sono binari.

Li puoi visualizzare in formato ASCII, decimale, ottale, esadecimale ... dipende da come fai ...

Ma devi sempre mostrare il codice che usi in questo momento per avere risposte ...
12/10/11 13:35
Andrea10
Ecco il codice che uso.
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>

char *path,*ptr=NULL,barra[1];
int s,i,n;
int fp;

int main(){
char str[500000];

path=getcwd(ptr,s);
barra[0]=path[2];
if(strlen(path)!=3) strcat(path,barra);
strcat(path,"image.jpg");
printf("%s\n\n", path);
fp=open(path,O_RDONLY);
s=0;
n=read(fp,&str[s],sizeof(char));
while(n!=0){
    n=read(fp,&str[s],sizeof(char));
    printf("%c",str[s]);
    s++;}
close(fp);
fp=open("FImage.txt",O_RDONLY);
if(fp<0)
    creat("FImage.txt",0666);
close(fp);
fp=open("FImage.txt",O_WRONLY);
for(i=0;i<s;i++)
    write(fp,&str[i],sizeof(char));
close(fp);
getch();
}


Nel file .txt che creo ottengo lettere e simboli.
Non si tratta di caratteri ascii?
Grazie
aaa
12/10/11 13:44
Andrea10
Ecco il codice che uso.
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
char *path,*ptr=NULL,barra[1];
int s,i,n;
FILE *fp;
int main(){
char str[50000];
path=getcwd(ptr,s);
barra[0]=path[2];
if(strlen(path)!=3) strcat(path,barra);
strcat(path,"image.jpg");
printf("%s\n\n", path);
fp=fopen(path,"rb");
s=0;
while(!feof(fp)){
    fread(&str[s],sizeof(char),1,fp);
    printf("%c",str[s]);
    s++;}
fclose(fp);

fp=fopen("FImage.txt","wb");
for(i=0;i<s;i++)
    fwrite(&str[i],sizeof(char),1,fp);
fclose(fp);
getch();
}



Nel file .txt che creo ottengo lettere e simboli.
Non si tratta di caratteri ascii?

Ho provato ad aprire l'immagine con un altro programma preso da internet e mi visualizza i dati in esadecimale e i simboli.

Grazie
aaa
12/10/11 13:58
Se indichi di mostrare i dati in formato carattere (ASCII) con

printf("%c",str[s]);

è così che li vedrai. Per vederli in esadecimale, devi indicare

printf("%X",str[s]);
12/10/11 17:19
Andrea10
E per scriverli su un file txt in esadecimale come faccio?

Grazie, Andrea
aaa