Jump to content
Sign in to follow this  
Heitor Galassi

gerar um arquivo e inserir uma string em txt em C

Recommended Posts

Estou com um código de criptografia DES, o código utiliza um sistema de 3 txt's previamente criados pelo usuário, durante o programa o mesmo informa o nome dos txt's, sendo que um deles já previamente preenchido, estou tentando alterar para que o usuário dê o valor no próprio programa, em vez de fornecer o nome do arquivo txt, no entanto o programa não está lendo a linha do gets(string), poderiam me ajudar por favor? Segue abaixo parte do código.

 

 

----------

switch(opcao) {

case 1:

printf("\n\tENCRIPTOGRAFANDO...\n");

printf("Entre com a chave numerica de ate 8 digitos:");

scanf("%s",&chave[0]);

printf("\nAbra o arquivo orig.txt e digite a mensagem que deseja criptografar. \nSalve e Feche. \nDigite 'orig.txt', sem aspas: ");

scanf("%s",&nome1[0]);

printf("\nEntre com o nome do arquivo para salvar o texto codificado (cripto.txt): ");

scanf("%s",&nome2[0]);

printf("\nArquivo encriptado com sucesso. Verifique cripto.txt.");

encrypt();

break;

case 2:

printf("\n\tDECRIPTOGRAFANDO...\n");

printf("Entre com a chave numerica usada para criptografar: ");

scanf("%s",&chave);

printf("\nEntre com o nome do arquivo que contem o texto codificado (cripto.txt): ");

scanf("%s",&nome1[0]);

printf("\nEntre com o nome do arquivo para salvar o texto decifrado (descripto.txt): ");

scanf("%s",&nome2[0]);

printf("\nArquivo decriptado com sucesso. Verifique descripto.txt.");

decrypt();

break;

case 0:

printf("\n\tFim da execucao. Programa de criptografia DES, APS segundo semestre.\n\n");

printf("\n\tPor Stephani Souza, Heitor Galassi, Nathan Costa e Thyago Biazin.");

exit(0);

default:

printf("\nOpcao invalida! Tente novamente.\n");

getchar();

break;

}

}

void encrypt() {

// char string[150];

int i,j,o;

struct LR op, ip;

struct ks keys[16];

FILE *arqin, *arqout;

/* FILE *msg;

msg = fopen("orig.txt","w+"); //chamo o arquivo para ler+escrever, apago o que estava nele antes

if(!msg)

{

printf("\nErro ao abrir arquivo!");

fclose(msg);

}

printf("\nDigite a mensagem que sera criptografada(max. 150 caracteres):");

gets(string);

for(o=0; string[o]; o++) putc(string[o], msg);

msg = arqin;*/

 

for (i = 0; i < 16; i++) {

keys = KS (i);

}

arqin = stdin;

arqout = stdout;

if ((arqin = fopen(nome1, "rb")) == NULL) { fprintf( stderr, "erro no arquivo %s\n", nome1 ); exit(1); }

if ((arqout = fopen(nome2, "wb")) == NULL) { fprintf( stderr, "erro no arquivo %s\n", nome2 ); exit(1); }

void decrypt() {

int i;

struct LR op, ip;

struct ks keys[16];

FILE *arqin, *arqout;

for (i =0; i < 16; i++) {

keys = KS (i);

}

arqin = stdin;

arqout = stdout;

if ((arqin = fopen(nome1, "rb")) == NULL) { fprintf( stderr, "erro no arquivo %s\n", nome1 ); exit(1); }

if ((arqout = fopen(nome2, "wb")) == NULL) { fprintf( stderr, "erro no arquivo %s\n", nome2 ); exit(1); }

while (fread(&ip, 1, sizeof(struct LR), arqin) != 0)

 

----------

 

galera agradeço desde já!

Share this post


Link to post
Share on other sites

Não use gets. É inseguro. Use fgets no lugar.
Provavelmente está "pulando a leitura" porque algum \n ficou na entrada padrão. Não use fflush(stdin) p/ corrigir isso. Se a leitura foi feita com scanf, use scanf("%s%*c") p/ ignorar o \n final na entrada.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Similar Content

    • By Jefferson andre
      Boa tarde, Estou com problemas ao utilizar o fopen, no localhost funciona corretamente mas ao subir para o site em vez de criar o arquivo em C:\nomedapasta ele cria na pasta que esta executando dentro do site.   Ja tentei colocar o caminho com duas barras mas mesmo assim nao esta funcionando. Segue o caminho que preciso criar o arquivo C:\CFe\123456\Envio\nomedoarq.xml   ja tentei isso acima assim C:\\CFe\\123456\\Envio\\nomedoarq.xml e nada   estou usando o comando assim: $destino = fopen($xdestino, 'w');   e entao vou colocando as escritas dentro dele com fwrite($destino, "escrita");   O que fazer ? ou pra qual comando mudar para escrever um xml ?
    • By Jefferson andre
      Ola,
      qual comando eu utilizo para pegar o que esta entre <a>teste</a> ?
      tendo como valor retornado: teste
       
      O uso seria para ler o conteudo de um xml ok
       
    • By luciano
      Boa noite pessoal alguém poderia me ajudar por favor,
      gostaria de pagar o valor da função random e colocar na imagem.
      -----função-----
      <p id="demo"></p>
      <script>
      document.getElementById("demo").innerHTML =
      Math.floor((Math.random() * 22) + 1);        
      </script>
      ----------
       <img src="imagens/('#demo').jpg" alt="Card">
       
      Eu ja tentei:
      ('#demo')
      '#demo'
      "#demo"
      Nada funciona.
       
      Por favor me dem uma luz, não manjo de java
      Obrigado
    • By leodamian
      Bom Dia !
       
        Estou iniciando no sql e preciso de um help na seguinte questão:
       
      Quero extrair o primeiro e segundo nome de um campo no oracle.
      EX: 
      Nome_Completo 
      LEONARDO FRANCISCO FLORIO DAMIAN
      JULIANO FRANCISCO FLORIO
      MARIA ELOISA DA SILVA SAURO
       
      RESULTADO
      LEONARDO FRANCISCO
      JULIANO FRANCISCO
      MARIA ELOISA
       
       
       
    • By igmacedo
      Preciso criar uma rota para cada usuário, mais de forma automatizada. é preciso que a url fique assim:
      site.com/compane/nome_da_empresa
       
      repare na parte em negrito, deve ser feito uma consulta no banco de dados para saber se aquele nome existe ou não, se existir, ele mostra a view1, se não existir ele mostra a view2.
       
      dessa forma eu poderia pegar o nome dos usuários que já existem no bd e passar na url na forma de string para mostra uma especie de pagina personalizada para cada um, a ideia do projeto é ser single-tenancy, então não haverá subdominio, apenas paginas, poderiam me dar um norte para construir a funçao?
      não achei nada a respeito.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.