Pergunta

Estou tentando ler um arquivo BMP em C ++ (Turbo). Mas não consigo imprimir fluxo binário.

Eu quero codificar o arquivo txt nele e descriptografá -lo. Como posso fazer isso. Eu li que o cabeçalho do arquivo BMP é de 54 byte. Mas como e onde devo anexar o arquivo txt no arquivo BMP. ?

Conheço apenas turbo C ++, por isso seria útil para mim se você fornecer solução ou sugestão relacionada ao tópico para o mesmo.

int main()
{
ifstream fr; //reads
ofstream fw; // wrrites to file
char c;
int random;
clrscr();
char file[2][100]={"s.bmp","s.txt"};

fr.open(file[0],ios::binary);//file name, mode of open, here input mode i.e. read only
if(!fr)
    cout<<"File can not be opened.";
fw.open(file[1],ios::app);//file will be appended
if(!fw)
    cout<<"File can not be opened";
while(!fr)
    cout<<fr.get(); // error should be here. but not able to find out what error is it

fr.close();
fw.close();
getch();
}

Este código está funcionando bem quando passo o arquivo txt no modo binário

Editar:

while(!fr)
    cout<<fr.get(); 

Não consigo ver dados binários no console, isso estava funcionando bem para o texto quando eu estava passando pelo parâmetro de caractere em Fr.get (c)

Foi útil?

Solução

Eu acho que sua pergunta já foi respondida:Imprima um int em representação binária usando C

Converta seu char em um INT e você terminou (pelo menos para a parte de saída)

Outras dicas

Com a Steganografia, o pouco que sei sobre isso, você não está "anexando" texto. Você está fazendo mudanças sutis nos pixels (sombreamento, etc.) para ocultar algo que não é visualmente óbvio, mas deve ser capaz de ser descrito reverso examinando os pixels. Não deve ter nada a ver com o cabeçalho. De qualquer forma, o objetivo da minha resposta que não é de isso é incentivá-lo e aprender sobre o tópico que você busca respostas, para que você possa projetar sua solução e depois pedir detalhes sobre a implementação.

Você precisa modificar o padrão de bits, não anexar nenhum texto ao arquivo. Um exemplo simples: leia o conteúdo do bitmap (após o cabeçalho) e sacrifique um pouco de cada byte para manter seu conteúdo

Se no Windows, recoda para usar o createfile e ver qual é o erro real. Se no Linux, idem para o Open (2). Depois de depurar o problema, você provavelmente poderá voltar para os formas iost.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top