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

    Problema lettura carattere CTRL+Z

    Buongiorno a tutti, ho un problemino con questo programma che, praticamente, mi deve leggere il suo contenuto un carattere alla volta ed estrarre i bit relativi al suo codice ascii con gli operatori di bitwise.

    La parte del bitwise funziona, infatti i bit 0 e 1 che mi restituisce corrispondono, però, ad un certo punto, interrompe la lettura dei caratteri dal file, come se avesse trovato un EOF all'improvviso (che non è vero perchè fino alla fine del file non ci arriva mai). Ho controllato bene a che carattere si ferma, ed è un carattere che corrisponde a "00011010" in ASCII (è il carattere che appare premendo CTRL+Z). Non a caso, appena eliminiamo questo carattere dal file, la lettura prosegue. Avete per caso un'idea di come risolvere questa cosa? Vi posto il codice qui:

    codice:
    #include<iostream>
    #include<fstream>
    #include <stdlib.h>
    #include <string.h>
    #include <vector>
    using namespace std;
    int main(){
        char f='\0';
        int *buffer=new int[10000000];
        int cnt=0;
        ifstream file("p2.txt");
        ofstream fout("decompressione.txt");
    
        while(( f = file.get() )){
            cout << "carattere trovato: " << f << "\n";
            for(int i=0;i<8;i++){
              /*if(f=='^Z')
              buffer[i]={00011010};*/
              buffer[cnt++]=(f<0);
              f=f<<1;
    
    }
    f='\0';
    }
    
          for(int i=0; i<cnt; i++) {
              if(i%8==0) cout << " ";
              fout<<buffer[i];
    
        }
            file.close();
    
    }
    Grazie in anticipo per la risposta!

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Il CTRL-Z è proprio il carattere di EOF.

    Devi aprire il file in binario per evitare il problema.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Quote Originariamente inviata da oregon Visualizza il messaggio
    Il CTRL-Z è proprio il carattere di EOF.

    Devi aprire il file in binario per evitare il problema.
    Ah, ora ho capito, ho fatto così e ho risolto, sei grande, ti ringrazio!

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