Ir para conteúdo
Fórum Script Brasil
  • 0

FUNÇÃO ITOA COM ARQUIVO TXT


marcelo.eletronics

Pergunta

BOA DIA

Meu nome e marcelo e estou tentando desenvolver um sistema de cifragem em c, mas tenho uma duvida na parte estrutural do programa

pois a função itoa para a transformação de hexadecimal ou decimal em binario so pega quando eu coloco sem o arquivo txt, preciso associar os dois

para o programa não atrasar muito ao rodar já que se trata  de um programa muito grande assim necessito utilizar uma função que seja a itoa ou outra que tenha a mesma função

para implementar o AES- Advanced Encryption Standard

 

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
 
FILE *entrada;
FILE *saida;
int main()
{
    int n;
    char v[4];
    char o[4];
    entrada = fopen("uva.txt","r");
    saida=fopen("saida.txt","w");
    fscanf(entrada,"%s", v);
//    fread(entrada,"%s",v)    
    printf("%s\n",entrada);
    
itoa(v,o,2);

fprintf(saida,"o",v);

    system("PAUSE");
    return 0;
}

 

 

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Boa noite, a função itoa() tem como objetivo converter um inteiro em outro número em alguma base.

Essa função não aceita char como entrada.

Exemplo funcional da itoa().

#include <stdio.h>
#include <stdlib.h>

int main(){
	
	int numero;
	char variavelAuxiliar[128];
	
	printf("Informe um numero: ");
	scanf("%d", &numero);
	
	printf("\no numero %d em hexa é: %s", numero, itoa(numero,variavelAuxiliar, 16));
}

Exemplo não funcional

#include <stdio.h>
#include <stdlib.h>

int main(){
	
	char numero[30];
	char variavelAuxiliar[128];
	
	printf("Informe um numero: ");
	scanf("%s", &numero);
	
	printf("\no numero %s em hexa é: %s", numero, itoa(numero,variavelAuxiliar, 16));
}

O motivo dos exemplos acima é que o seu código min levou a enteder que é justamente isso que está errado em seu código, você tenta converter char em binário, e isso não vai rolar.

observe um trecho do seu código que ler do arquivo e armazena em uma variável do tipo char.

 fscanf(entrada,"%s", v);

Agora você tenta converter essa variável em binário ou hexa.

itoa(v,o,2);

Agora para corrigir isso eu faria a leitura do arquivo como int e converteria esse número na base desejada.

Consoante o código abaixo.

#include <stdio.h>
#include <stdlib.h>


int main(){
	
	FILE *arquivo=fopen("numeros.txt", "r");
	int numero;
	char variavelAuxiliar[128];
	if( arquivo==NULL){
		printf("Erro ao tentar abrir o arquivo!");
		return -1; //sai fora.
	}
	// lendo o arquivo.
	while( (fscanf(arquivo,"%d", &numero))!=EOF){
		printf("\n%s", itoa(numero, variavelAuxiliar, 2));
	}
}
/********************************
Exemplo do arquivo
1
2
3
4
5
7
8
9
fim arquivo.
*******************************/

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...