Ir para conteúdo
Fórum Script Brasil

Gaba_

Membros
  • Total de itens

    4
  • Registro em

  • Última visita

Sobre Gaba_

Gaba_'s Achievements

0

Reputação

  1. Gaba_

    Ajuda com debug de programa

    Conseguir debugar! Precisava sincronizar o buffer com o arquivo em disco! Segue código atualizado #include <iostream> #include <fstream> #include <stdlib.h> using namespace std; int main(int argc, char* argv[]) { int p; char c; // caractere do arquivo int cripto; // caractere encriptado do arquivo int key = atoi (argv[2]); // senha if (argc != 3) // verifica número de parâmetros { cout << "\nErro, use 2 parametros como: c:\\meuarquivo.xxx senha" << endl; exit(1); } else if (key < 0 || key > 255) // verifica a senha { cout << "\nErro, a senha deve ser um numero de 0 a 255" << endl; exit(1); } fstream inout (argv[1], ios::in | ios::out | ios::binary); // abre o arquivo if (!inout.is_open()) // verifica erro ao abrir arquivo { cout << "\nErro ao abrir arquivo" << endl; exit(1); } while (inout.good()) { inout.get(c); // lê caracter cripto = (int)c + key; // aplica a senha inout.seekp( -1, ios_base::cur); // volta uma posição inout.put((char)cripto); // escreve caracter no arquivo inout.sync(); // sincroniza! } inout.close(); // fecha o arquivo cout << "\nCriptografado com sucesso!" << endl; return 0; }
  2. Gaba_

    Ajuda com debug de programa

    Estranho, aqui retornou DBF. Converteu o primeiro e o segundo caracteres somente :/ Mas, muito obrigado, vou tentar em outro compilador depois. Tentei com o DevC++ Valeu!
  3. Gaba_

    Ajuda com debug de programa

    Muito obrigado amigo, mas infelizmente não funcionou, o arquivo ficou uma letra codificada e outra não assim sucessivamente. Porque o comando inout.put© já deve andar uma posição. Está complicado, ninguém acha esse bug. Obrigado
  4. Olá, estou tendo um problema para ler e escrever no mesmo arquivo. O que eu quero fazer é ler um caracter do arquivo, somar um valor a esse caracter e escrever o resultado como um caracter na mesma posição do original. (ex: 'A'= 65 + 3 = 68 = 'E') Fazer isso para todo o arquivo. Meu código: #include <iostream> #include <fstream> using namespace std; #include <stdlib.h> // usando exit() e atoi() int main(int argc, char* argv[]) { int p; char c; // caractere do arquivo int cripto; // caractere encriptado do arquivo int key = atoi (argv[2]); // senha if (argc != 3) // verifica número de parâmetros { cout << "\nErro, use 2 parametros como: c:\\meuarquivo.xxx senha" << endl; exit(1); } else if (key < 0 || key > 255) // verifica a senha { cout << "\nErro, a senha deve ser um numero de 0 a 255" << endl; exit(1); } fstream inout (argv[1], ios::binary | ios::out | ios::in); // abre o arquivo if (!inout.is_open()) // verifica erro ao abrir arquivo { cout << "\nErro ao abrir arquivo" << endl; exit(1); } while (inout.good()) { inout.get(c); // lê caracter cripto = (int)c + key; // aplica a senha inout.seekp( -1, ios_base::cur); // volta uma posição inout.put((char)cripto); // escreve caracter no arquivo } inout.close(); // fecha o arquivo cout << "\nCriptografado com sucesso!" << endl; return 0; } Já quebrei muito a cabeça, não consigo ver onde errei. Obrigado a todos pela ajuda logo de adiantado! Gabriel
×
×
  • Criar Novo...