nessuno (Normal User)
Guru^2
Messaggi: 6403
Iscritto: 03/01/2010
|
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 ...
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
Andrea10 (Normal User)
Newbie
Messaggi: 8
Iscritto: 11/10/2011
|
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
|
|
nessuno (Normal User)
Guru^2
Messaggi: 6403
Iscritto: 03/01/2010
|
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 ...
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
Andrea10 (Normal User)
Newbie
Messaggi: 8
Iscritto: 11/10/2011
|
Ecco il codice che uso.
Codice sorgente - presumibilmente C++ |
#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
|
|
Andrea10 (Normal User)
Newbie
Messaggi: 8
Iscritto: 11/10/2011
|
Ecco il codice che uso.
Codice sorgente - presumibilmente C++ |
#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
|
|
nessuno (Normal User)
Guru^2
Messaggi: 6403
Iscritto: 03/01/2010
|
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]);
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
Andrea10 (Normal User)
Newbie
Messaggi: 8
Iscritto: 11/10/2011
|
E per scriverli su un file txt in esadecimale come faccio?
Grazie, Andrea
|
|
nessuno (Normal User)
Guru^2
Messaggi: 6403
Iscritto: 03/01/2010
|
Se li vuoi scrivere in esadecimale in un file di testo, usi la
fprintf
al posto della
printf
Ovviamente devi prima aprire il file in output.
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|