Enviado em 10/01/2020 - 17:55h
Oi, gente! Eu tô fazendo um projeto de escola em que preciso ler um texto de um arquivo, convertê-lo em morse e escrever esse texto convertido em outro arquivo diferente. Eu consegui fazer todo o programa, mas na hora de escrever o texto convertido no arquivo, as frases tão ficando todas zoadas dentro arquivo. Alguém pode me ajudar a resolver o probelma? Ficarei grato.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
/* Constantes */
#define T_MORSE 8
#define Q_LETRAS 26
#define Q_NUMEROS 10
#define Q_MORSE (Q_LETRAS+Q_NUMEROS)
#define MAX_STRING_SIZE 100
typedef struct{
char letras[5]; /* armazena a letra. A recebe como uma string , mas só usa a primeira letra */
char letrasMorse[T_MORSE];/* armazena os respectivos simbolos morse */
}alfabeto;
alfabeto l[Q_MORSE];
void codifica(const char *linha) {
int j=0, i=0;
FILE *fp;
fp = fopen("codificado.txt", "w");
while(i<strlen(linha)-1){ //lê a a frase inteira
while((toupper(linha[i]) != l[j].letras[0]) && (j< Q_MORSE)){
j++; // aponta para a proxima letra
}
if (toupper(linha[i]) == l[j].letras[0]){
fprintf(fp,"%s ", l[j].letrasMorse);
i++;
}else if (linha[i] == ' '){
fprintf(fp, "%c", " ");
i++;
}
j=0;
}
}
int main(){
int cont=0,j;
FILE *arch;
arch = fopen("morse.txt","r");
if( arch == NULL ){
printf("ERROR");
return 0;
}
else{
while(fscanf(arch,"%s%s",l[cont].letras,l[cont].letrasMorse) != EOF){
l[cont].letras[1] = '\0'; /* elimina caracteres indesejados */
for(j=0; l[cont].letrasMorse[j]; j++){
if(l[cont].letrasMorse[j] == '*'){ /* se encontra um asterisco */
l[cont].letrasMorse[j] = '\0'; /* elimina o asterisco */
break;
}
}
cont++; /* aponta para a proxima posiçao do vetor */
}
}
fclose(arch);
FILE *fp;
char linha[MAX_STRING_SIZE];
fp = fopen("original.txt", "r");
if (arch==NULL){
printf("ERROR");}
while (fgets(linha,MAX_STRING_SIZE,fp) != NULL ) {
codifica(linha);
}
fclose(fp);
return 0;
}
A .-*
B -...*
C -.-.*
D -..*
etc...
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
É cada coisa que me aparece! - não é só 3% (3)
Melhorando a precisão de valores flutuantes em python[AJUDA] (5)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta