Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

agrot

Codificação e descodificação em Morse

Recommended Posts

Tenho as duas seguintes duvidas em linguagem C

1ª Para codificar ou descodificar em morse é-me pedido para pedir qual a frase, a codificar ou descodificar, por escrito no teclado ou por leitura ficheiros.

No caso de ficheiros é o utilizador do programa que tem que me indicar a drive e o nome do ficheiro, por enquanto tenho assim:

File *fp;

char nome[100]

puts("Introduza o nome do ficheiro:"\n)

gets(nome);

if (fp==NULL)

printf ("Abertura sem sucesso"\n);

else {

Isto está correcto?

E como poderei utilizar a função que tenho para codificar e descodificar para utilizar os caracteres inseridos no ficheiro.

2ª A descodificar o morse não dando para utilizar o comando switch tenho os seguintes comandos:

if( strcmp( c, ".-" ) == 0 code = "A";

else if( strcmp( c, "-...") == 0 code = "B";

.

.

.

Continuando os caracteres todos, assim o visual studio informa-me que esta a correr um erro como posso corrigir esse erro.

 

 

 

Se for possivel responder o mais rápido possível agradeço

Cumprimentos Agrot

Compartilhar este post


Link para o post
Compartilhar em outros sites

primeiro, você já está errando ao usar gets(). Prefira fgets

http://www.rberaldo.com.br/blog/2011/01/23/c-por-que-usar-fgets-em-vez-de-gets/

 

de onde vem a variável "c"?

 

e que erro aparece? poste a mensagem de erro sempre, assim fica mais fácil ajudarmos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Utilize a tag

 para postar exemplos de códigos-fonte.

 

O código postado não está correto. Você não declara corretamente o tipo de fp (deveria ser FILE *, a não ser que você tenha um typedef em algum lugar), e nem inicializa a variável antes de compará-la a NULL. Onde você acha que seu código abre o arquivo cujo caminho é lido do teclado? Aliás, o que disseram acima é verdade: não use gets().

 

Além disso, se [b]c[/b] tem tipo [b]char[/b], é errado passá-la como argumento para strcmp(). A função espera um ponteiro para char.

 

Há também erro de sintaxe nas condicionais, além de dois outros erros na declaração de [b]nome[/b] e chamada de puts().

 

Sugiro que leia um livro sobre C. Minha assinatura tem duas opções entre as quais você pode escolher.

Compartilhar este post


Link para o post
Compartilhar em outros sites

1>c:\users\andre\documents\visual studio 2005\projects\morse\morse\descodificacao.cpp(64) : error C2146: syntax error : missing ')' before identifier 'code'

1>c:\users\andre\documents\visual studio 2005\projects\morse\morse\descodificacao.cpp(64) : error C2440: '=' : cannot convert from 'const char [2]' to 'char [1]'

estão aqui os erros que aparecem no visual studio

Faltará o fopen certo

Qual é o erro nas condicionais que indicas quando dizes "Há também erro de sintaxe nas condicionais"? Sou recente na matéria relativa a programação, vou começar a ler os livros que me indicaste

Compartilhar este post


Link para o post
Compartilhar em outros sites

Utilize a TAG

[code ] para postar os códigos e idente-os (organize). Além de confuso, teu código tá incompleto... poste-o todo e terá a ajuda que precisa.

edit: Se não souber, a tag [code ] é usada da seguinte forma:

Primeiro escreve
      

// [u][b]sem os espaços[/b][/u]

Por exemplo: 

[code]
FILE *fp;
char nome[100];
puts("Introduza o nome do ficheiro:\n");

 

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

corrija o código, conforme as orientações do guidjos e poste-o integralmente, dentro das tags code, como mostrado pelo Kelvin_DD

 

e indique quais são as linhas referentes ao erro, pois somente temos o número da linha, sem saber qual é o conteúdo dela

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.