1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Criar e inserir uma string em .txt, linguagem C

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[i] = 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[i] = 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á!

  • Por favor, coloque o seu código do formato próprio. Edite a sua mensagem, selecione todo o código e aperte Ctrl+K

    Henrique Buzachero   09 de nov de 2015
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags string criptografia ou faça a sua própria pergunta.