agrot 0 Denunciar post Postado Janeiro 23, 2011 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
Beraldo 864 Denunciar post Postado Janeiro 23, 2011 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
guidjos 65 Denunciar post Postado Janeiro 23, 2011 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
agrot 0 Denunciar post Postado Janeiro 24, 2011 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
Kelvin Dules 0 Denunciar post Postado Janeiro 24, 2011 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
Beraldo 864 Denunciar post Postado Janeiro 24, 2011 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