Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    [C++] Conversione esadecimale decimale da FILE

    Salve a tutti apro subito con un problema che mi attanaglia la mente e soprattutto lo spirito

    Veniamo al punto..

    Ho un file contenente una serie di cifre esadecimali che dovrei convertire in cifre decimali, ho una notevole difficoltà a far acettare a delle variabili intere i valori esadecimali da file, ho quindi pensato a passarle anzichè da file ad una stringa, stessa cosa il cast con valori esadecimali non riesce... avete qualche idea??? bye bye

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Ma il file di cui parli di che tipo e' ?

    E' un file di testo (.txt) con i dati scritti in formato leggibile, esempio

    A021 AA09

    o è un file eseguibile (.exe) o un file dati (.dat, .bin) in cui i dati sono in binario ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    è un file txt... i valori esadecimali hanno max 3 cifre

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Cioe' un file di testo con un valore per riga ... esempio cosi'

    320
    1A
    A90
    7B
    C22
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    22 caratteri per riga e m non mi ricordo quanti per colonna.. eccolo qui

    53 65 20 72 69 65 74 63 69 20 61 20 6C 65 67 67 65 72 6D 69 20 76
    75 6F 6C 20 64 69 72 65 20 63 68 65 20 73 6F 6E 6F 20 72 69 75 73
    63 69 74 6F 20 61 20 73 75 70 65 72 61 72 65 20 69 20 73 69 73 74
    65 6D 69 20 64 69 20 73 69 63 75 72 65 7A 7A 61 20 64 65 6C 6C 61
    20 42 69 6F 41 63 6D 65 6E 52 61 2C 20 73 6F 6E 6F 20 69 6C 20 44
    6F 74 74 6F 72 20 52 61 6D 73 65 73 2C 20 67 72 61 7A 69 65 20 61
    6C 6C 61 20 63 6F 6C 6C 61 62 6F 72 61 7A 69 6F 6E 65 20 63 6F 6E
    20 61 6C 63 75 6E 69 20 76 65 63 63 68 69 20 65 20 66 69 64 61 74
    69 20 61 6D 69 63 69 20 72 69 75 73 63 69 72 F2 20 61 64 20 69 6E
    76 69 61 6D 74 69 20 75 6C 74 65 72 69 6F 72 69 20 65 20 73 65 67
    72 65 74 69 73 73 69 6D 65 20 69 6E 66 6F 72 6D 61 7A 69 6F 6E 69
    2E 20 4E 6F 20 64 69 72 65 20 61 20 6E 65 73 73 75 6E 6F 20 64 69
    20 71 75 65 73 74 69 20 6D 65 73 73 61 67 67 G9 2C 20 73 70 65 72
    6F 20 63 6F 6C 6F 20 64 69 20 72 69 75 73 63 69 72 65 20 61 64 20
    69 6E 76 69 61 72 76 65 6E 65 20 61 6C 74 72 69 2E 2E 2E 2E

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Beh ... per la lettura del file penso che tu non abbia problemi ...

    Per convertire il valore a partire da una stringa, ad esempio, puoi scrivere

    int x;
    char *s = "53";

    x = strtol(s, NULL, 16);

    Naturalmente la stringa s e' un esempio ... tu la otterrai da file ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Supponendo che il tuo stream di input si chiami is:
    codice:
    int intero1, intero2, intero3;
    //...
    //Imposta la base 16 come base di lettura dei numeri
    is.setf(ios::hex,ios::basefield);
    is>>intero1>>intero2>>intero3;
    //Se dopo ti serve leggere numeri in base 10 ti basta fare così:
    is.setf(ios::dec,ios::basefield);
    .
    Amaro C++, il gusto pieno dell'undefined behavior.

  8. #8
    Non conoscevo queste funzioni grazie 1000

    @Mitaly, in quel modo i valori possono essere ritrasformati in intero?

  9. #9
    Non capisco cosa intendi... nel modo che ti ho proposto dici allo stream che i numeri sono scritti in esadecimale, per cui lo stream, leggendoli, li legge come numeri esadecimali e li memorizza normalmente nelle variabili intere, che poi potrai usare normalmente. Non c'è nulla da ritrasformare, sono già interi.
    Amaro C++, il gusto pieno dell'undefined behavior.

  10. #10
    volevo dire decimali.. comunque grazie 1000 problema risolto e programma funzionante

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.