Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    23

    [C]File Binari

    Ciao a tutti. Non riesco a capire questi file binari. Da quanto ho capito,ci posso scrivere qualsiasi cosa , e in seguito dovrei leggerci solo numeri.
    Invece quando lo apro ci sono lettere!
    codice:
    fp=fopen("Voti.bin","wb");
    for(i=0;i<10;i++)
    fprintf(fp,"Matricola  %d  => interr  %d  :voti  %d \n",voti[i][0],(voti[i][1]-1),(voti[i][2]-6));
    
    fclose(fp);
    Questa è la parte di programma in cui apro il file binario e scrivo.
    Sbaglio qualcosa?
    Grazie per qualsiasi consiglio!

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,326

    Re: [C]File Binari

    Originariamente inviato da mawjuve
    Ciao a tutti. Non riesco a capire questi file binari. Da quanto ho capito,ci posso scrivere qualsiasi cosa , e in seguito dovrei leggerci solo numeri.
    E dove avresti letto questa assurdità?

    Invece quando lo apro ci sono lettere!
    codice:
    fp=fopen("Voti.bin","wb");
    for(i=0;i<10;i++)
    fprintf(fp,"Matricola  %d  => interr  %d  :voti  %d \n",voti[i][0],(voti[i][1]-1),(voti[i][2]-6));
    
    fclose(fp);
    Questa è la parte di programma in cui apro il file binario e scrivo.
    Sbaglio qualcosa?
    Grazie per qualsiasi consiglio!
    Cosa vuol dire "quando lo apro"? Lo apri con un editor di testi (come Blocco Note)? O con un tuo programma (di cui non si vede il codice)?

    Supponendo che tu lo apra con il Blocco Note...

    Non so cosa contenga la matrice "voti", immagino dei numeri... se è così, è molto facile che aprendo il file tu veda delle lettere... ad esempio, se hai il valore 65, probabilmente vedrai una "A", se hai il valore 163 vedrai una "ú"...

    Aprire un file in modalità binaria significa non fare alcuna assunzione sul contenuto del file, ma andarlo ad indirizzare direttamente byte per byte...


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    23
    Grazie. Si l'ho aperto con blocco note. Ora ho appena letto che per i file binari si usa la fwrite.
    Ma come faccio a scrivere la matrice con la fwrite?
    Per provarla ho corretto così il programma scrivendo :
    codice:
    fp=fopen("Voti.bin","wb");
    for(i=0;i<10;i++)
                  fwrite(voti,1,i,fp);                      //  QUI !!
    Cmq l'ho aperta con wordpad e mi è apparso:

    codice:
    þþþ
    Altrimenti in che modo posso aprire il file per verificare se è giusto l' esercizio?
    Scusa sono alle prime armi...
    Grazie per l'aiuto!!

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,326
    Non è un problema di funzione da usare, il problema è capire cosa stai cercando di scrivere.
    Se scrivi un numero, nel file ci andrà la rappresentazione binaria del numero (così com'è in memoria)... e se apri il file con il Blocco Note, quello che vedi è un'accozzaglia di caratteri, in base al numero.

    Se tu vuoi scrivere su un file di testo (Blocco Note apre solo file di testo), devi trasformare il numero in stringa e scrivere quella.

    Vedi le funzioni di conversione da numero a stringa (esempio, itoa() ).


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    23
    Ti ringrazio....ora ho tutto + chiaro!!

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 © 2025 vBulletin Solutions, Inc. All rights reserved.