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:
Grazie in anticipo per la risposta!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(); }

Rispondi quotando
