Visualizzazione dei risultati da 1 a 5 su 5

Discussione: [c]aprire file binari

  1. #1

    [c]aprire file binari

    So gestire i file di testo in c e oggi ho iniziato lo studio dei file binari.
    Tuttavia non riesco ad aprire il file in modalità binaria, eseguito il programma cerr mi restituisce il messaggio di errore.
    Se apro invece il file in modalità normale, eliminando "ios::binary", risolvo.
    Perchè?

    Codice PHP:

    #include<iostream>
    #include<fstream>
    #include<cstdlib>
    using namespace std;

    struct tpersona{
           
    char nome[15];
           
    char cognome[15];
           
    int posto;
           
    int valore;
           };
    tpersona data;
           
    int main(void) {
        const 
    int lunghezza=sizeof(tpersona);
        
    fstream file;
        
    file.open("ciao.txt"ios::binary);
        if (!
    file)
           
    cerr<<"file non aperto correttamente"<<endl;
        else {
             
    cout<<"inserire nome, cognome, posto, valore"<<endl;
             
    cin>>data.nome;
             
    cin>>data.cognome;
             
    cin>>data.posto;
             
    cin>>data.valore;
             
             
    file.seekg(0);
             
    file.write((char*) &datalunghezza);
             
             }
        
    file.close();
        
    system("pause");
        
        
        } 

  2. #2
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381

    Re: [c]aprire file binari

    Originariamente inviato da fULvI3ttO
    Se apro invece il file in modalità normale, eliminando "ios::binary", risolvo.
    Perchè?
    Codice PHP:
        file.open("ciao.txt"ios::binary); 
    Se metti solo ios::binary sovrascrivi il parametro di default.
    Essendo un fstream devi usare:
    ios::in | ios:ut | ios::binary

  3. #3
    hai ragione, ti ringrazio.
    è normale che se apro il file, riesco a vedere solo i campi char, e non quelli int?vedo un simbolo strano al posto del numero

  4. #4
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Si. Un file è solo una sequenza di byte a cui l'editor associa il carattere corrispondente al charset in uso. Ti consiglio un editor esadecimale per vedere i valori corretti.

  5. #5

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.