Ir ao conteúdo

Posts recomendados

Postado

boa noite.

preciso fazer um programa que faça a criptografia e a descriptografia de um texto. porém não consigo compilar. ja tentei de varias formas. mais não consigo avançar. alguém pode me ajudar. por favor

esse é o codigo que fiz.

#include <fstream>
#include <iostream>

using namespace std;

int main(void) {

  int op;

  ofstream arquivo;

  arquivo.open("texto.txt");

  arquivo << " Lucas de Castro Vaz\nRibeirao preto\n";

  arquivo.close();

  ifstream arquivoe;
  string linha;
  arquivoe.open("texto.txt");
  if (arquivoe.is_open()) {
    while (getline(arquivoe, linha)) {
      cout << linha << endl;
    }
    arquivoe.close();
  } else {
    cout << "impossível abrir o arquivo" << endl;
  }

  do {
    system("cls");
    cout << " * * * *M E N U * * * * \n\n";
    cout << "\n1 - criptografar o texto";
    cout << "\n2 - descriptografar texto";
    cout << "\n3 - mostrar texto";
    cout << "\n9 - Sair";
    cout << "\n\nDigite a sua opcao: ";
    cin >> op;

    switch(op)
    {
        case 1: system("cls");
                cout << "\ncriptografar: \n\n
                for(int i=0;nome[i]!='\0';i++)
                       nome[i]=nome[i]+3;

                system("pause");
                break;

        case 2: system("cls");
                cout << "\ndescriptografar: \n\n";
                for(int i=0;nome[i]!='\0';i++)
                       nome[i]=nome[i]-3;

                system("pause");
                break;

        case 3: system("cls");
                cout << "\nmostrar texto: \n\n";

                cout << "\ntexto: %s\n" << "texto";

                system("pause");
                break;
        case 9: "\nencerreando programa...\n\n";

            system("pause");
            break;

    } while (op!=9);


  return 0;
}


 

  • Obrigado 1
Postado

@lluccasccastro    esse seu código não compila por que faltam partes dele , como ponto_e_virgulas ,   e corrigindo apenas para compilar , mas não está fazendo nenhuma criptografia também não , e poderia ser assim  :

#include <fstream>
#include <conio.h>
#include <iostream>
#include <windows.h>
using namespace std;
int main(Arg c[] , Arg** v)
{
  int op;
  HANDLE _h = GetStdHandle(STD_OUTPUT_HANDLE);
  int antes, antis;
  CONSOLE_SCREEN_BUFFER_INFO c;
  if(GetConsoleScreenBufferInfo(_h, &c))
  {
    antes = (   c.wAttributes & 0xFF )         & 0x0F;
    antis = ( ( c.wAttributes & 0xFF ) >> 4 )  & 0x0F;
  }
  SetConsoleTextAttribute( _h , 11 + ( 0 << 4 ) );
  string nome = "qualquer coisa e mais alguma coisa";
  ofstream arquivo;
  arquivo.open("texto.txt");
  arquivo << " Lucas de Castro Vaz\nRibeirao preto" << endl;
  arquivo.close();
  ifstream arquivoe;
  string linha;
  arquivoe.open("texto.txt");
  if ( arquivoe.is_open() )
  {
    while ( getline(arquivoe , linha ) )
    {
      cout << linha << endl;
    }
    arquivoe.close();
  }
  else
  {
    cout << "impossível abrir o arquivo" << endl;
  }
  do
  {
    cout << "\tTecle para ContinuaR . . . !" << endl;
    getch();
    system("cls||clear");
    cout << "\n * * *    M E N U     * * * \n\
      \r\n 1 - criptografar o texto\
      \r\n 2 - descriptografar texto\
      \r\n 3 - mostrar texto\
      \r\n 9 - Sair\
      \r\n     Digite a sua opcao: ";
    //cin >> op;
    op = getch() - 48;                    /// sem precisar teclar Enter
    system("cls||clear");
    switch(op)
    {
    case 1:
      cout << "\ncriptografar: \n\n";      /// faltou aspas e ponto_e_virgula
      for(int i=0; nome[i] != '\0'; i++ )  /// variavel  nome inexistente
        nome[i] = nome[i] + 3;
      break;
    case 2:
      cout << "\ndescriptografar: \n\n";
      for(int i=0; nome[i] != '\0'; i++ )
        nome[i] = nome[i] - 3;
      break;
    case 3:
      cout << "\n\tmostrar texto -: ";
      cout << "\ntexto ---------: " << "texto\n";
      break;
    case 9:
      SetConsoleTextAttribute(_h , 15 + ( 12 << 4 ) );    /// letras Brancas eM Fundo VermeLho .
      cout << "\n  Encerreando O Programa . . . !  \n\n"; /// faltou o "cout <<"
      break;
    default:
      cout << "  Opcao InvaLida . . . !  " << endl;
    }
  }while ( op != 9 );
  SetConsoleTextAttribute( _h , antes + ( antis << 4 ) );
  cout << "\n\n" << endl;
  return 0;
}

 

  • Curtir 1
Postado
14 horas atrás, lluccasccastro disse:

ja tentei de varias formas. mais não consigo avançar

 

Nunca comece seu programa por um menu. De nada serve. Não vai aprender nada e não estará fazendo nada.

 

Nunca escreva um programa interativo: só vai perder tempo. Se ele precisa ser interativo coloque isso no fim.

 

Escreva em torno dos dados

 

Seu programa é simétrico: a descriptografia do arquivo criptografado é a mesma coisa que tinha antes certo? Então comece por uma simples string e faça as duas coisas e compare o resultado com a string inicial. O simples.

 

Depois que fizer isso aí você coloca o tal menu se precisa mesmo em minutos.

 

Entenda que menu é uma bobagem nesse caso: o simples é passar o nome dos arquivos de origem e e destino na linha de comando. Nada mais.

  • Curtir 1
  • Obrigado 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!