• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

deathseeker25

Erro na compilação...

29 mensagens neste tópico

Boas,

Estou a elaborar um programa que lê um texto introduzido pelo utilizador e o converte num código que eu mesmo inventei para cada letra.

O programa ainda não está a funcionar, pois ainda está em fase de desenvolvimento.

O código tem uma extensão média e consegui ir corrigindo os erros todos que o compilador dava, menos este:

106 invalid conversion from `char*' to `int'

Ora então, para quem se dispuser a ajudar numa forma de ultrapassar este erro, aqui fica o código:

#define MAX 500000

extern char texto [MAX];
extern int serial;

/* Aqui começa a fase de estruturação do código
que vai servir de apoio para a conversao das diferentes
letras em numero. A serial fui eu que elaborei e inventei
e só contem algarismos de 1 a 5, sendo atribuido um conjunto
de 5 numeros diferentes a cada letra do alfabeto.*/

int corresponde()
{
   char caracter;
   
   
              switch (caracter){
                     case 'a':
                          serial=12345;
                     case 'b':
                          serial=22345;
                     case 'c':
                          serial=32345;
                     case 'd':
                          serial=42345;
                     case 'e':
                          serial=52345;
                     case 'f':
                          serial=23345;
                     case 'g':
                          serial=24345;
                     case 'h':
                          serial=25345;
                     case 'i':
                          serial=23445;
                     case 'j':
                          serial=23545;
                     case 'k':
                          serial=23455;
                     case 'l':
                          serial=33455;
                     case 'm':
                          serial=43455;
                     case 'n':
                          serial=53455;
                     case 'o':
                          serial=44455;
                     case 'p':
                          serial=45455;
                     case 'q':
                          serial=44555;
                     case 'r':
                          serial=54555;
                     case 's':
                          serial=55555;
                     case 't':
                          serial=11555;
                     case 'u':
                          serial=12555;
                     case 'v':
                          serial=13555;
                     case 'w':
                          serial=14555;
                     case 'x':
                          serial=15555;
                     case 'y':
                          serial=25555;
                     case 'z':
                          serial=35555;
                          }                                                                                                                                               
              }

/*Esta função vai fazer com que se abram espaços no vector,
para lá caberem os serials. Não elimina as letras. 
Isso será feito por uma outra função que eliminará as letras,
ficando apenas as serials, que todas juntas vão encriptar os dados.
*/

char conversao(int i)
{
    i=strlen(texto);
    texto[5*i]=texto[i];
    
    for(i--; i>=0; i--)
    {
             texto[5*i]=texto[i];
             texto[5*i+1]=serial;
             
             }
             }
    

/*Falta aqui uma função que eliminara as letras que
eu tratarei de elaborar depois de resolver este erro
que esta a dar agora*/

main()
{
   
   
   printf("Introduza o texto: \n");
   gets(texto);
   conversao(texto);
   puts(texto);
   
   system("PAUSE");
   
   return 0;
   
}

Ora bem o erro está na função conversao.

Cumps e desde já obrigado pela ajudar que possam vir a prestar...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas,

Modifiquei o código e consegui ultrapassar os erros:

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

#define MAX 500000

static char texto [MAX];
static int serial;

/* Aqui começa a fase de estruturação do código
que vai servir de apoio para a conversao das diferentes
letras em numero. A serial fui eu que elaborei e inventei
e só contem algarismos de 1 a 5, sendo atribuido um conjunto
de 5 numeros diferentes a cada letra do alfabeto.*/

char corresponde()
{

   int caracter;
   switch (caracter){
                     case 'a':
                          serial=12345;
                     case 'b':
                          serial=22345;
                     case 'c':
                          serial=32345;
                     case 'd':
                          serial=42345;
                     case 'e':
                          serial=52345;
                     case 'f':
                          serial=23345;
                     case 'g':
                          serial=24345;
                     case 'h':
                          serial=25345;
                     case 'i':
                          serial=23445;
                     case 'j':
                          serial=23545;
                     case 'k':
                          serial=23455;
                     case 'l':
                          serial=33455;
                     case 'm':
                          serial=43455;
                     case 'n':
                          serial=53455;
                     case 'o':
                          serial=44455;
                     case 'p':
                          serial=45455;
                     case 'q':
                          serial=44555;
                     case 'r':
                          serial=54555;
                     case 's':
                          serial=55555;
                     case 't':
                          serial=11555;
                     case 'u':
                          serial=12555;
                     case 'v':
                          serial=13555;
                     case 'w':
                          serial=14555;
                     case 'x':
                          serial=15555;
                     case 'y':
                          serial=25555;
                     case 'z':
                          serial=35555;
                          }                                                                                                                                               
              }

/*Esta função vai fazer com que se abram espaços no vector,
para lá caberem os serials. Não elimina as letras. 
Isso será feito por uma outra função que eliminará as letras,
ficando apenas as serials, que todas juntas vão encriptar os dados.
*/

char conversao()
{
    int i=strlen(texto);
    texto[5*i]=texto[i];
    
    for(i--; i>=0; i--)
    {
             texto[5*i]=texto[i];
             texto[5*i+1]=serial;
             
             }
             }
    
/*Falta aqui uma função que eliminara as letras que
eu tratarei de elaborar depois de resolver este erro
que esta a dar agora*/

main()
{
   printf("Introduza o texto: \n");
   gets(texto);
   corresponde();
   conversao();
   puts(texto);
   
   system("PAUSE");
   
   return 0;
   
}

O problema é que ao executar, depois de escrevermos uma frase qualquer, não está a converter na numeração desejada, e só aparece a primeira letra de cada frase...

Alguem se disponibiliza para ajudar? :P

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Diz-me só uma cena, estas a pensar em algo para necessitar de um cdkey é? em relação a isso tenho umas ideias :P:D:D (malikas claro, mas funcionais eheheh)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Diz-me só uma cena, estas a pensar em algo para necessitar de um cdkey é? em relação a isso tenho umas ideias :P (malikas claro, mas funcionais eheheh)

Não é bem isso. Isto é tipo uma preparação para algo que vou fazer posteriormente. Algo maior. Mas precisava de uma ajudinha aqui....

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ora bem, eu bem tentei fazer alguma coisa mas c, embora muito parecido com a sua variante ++, ainda tem algumas diferenças.

Eu em c++ até fazia isso bem, bastava que ele lesse letra-a-letra (com a função getch() ) e fizesse um switch (como tu fizeste) onde visse qual o codigo desejado e depois acabava a "coutar" (vem de cout, comando usado para mostrar algo no ecran) esse mesmo código.

No fundo é simples, mas não me perguntes como se fazia o descodificador, porque isso também não sei.

Fica bem :P;) ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Ora bem, eu bem tentei fazer alguma coisa mas c, embora muito parecido com a sua variante ++, ainda tem algumas diferenças.

Eu em c++ até fazia isso bem, bastava que ele lesse letra-a-letra (com a função getch() ) e fizesse um switch (como tu fizeste) onde visse qual o codigo desejado e depois acabava a "coutar" (vem de cout, comando usado para mostrar algo no ecran) esse mesmo código.

No fundo é simples, mas não me perguntes como se fazia o descodificador, porque isso também não sei.

Fica bem :P;) ;)

Já estou a dar mais alguns passos. Depois coloco aqui o código para quem quiser adaptar ou ajudar até. O objectivo da utilização deste tipo de substituição por linguagem matemática de 5 numeros criada por mim é codificar alguns dados. Para que? Isso ainda é projecto.

Agora, não chamem encriptação a isto porque não é. É apenas substituição.

Depois mostro-vos uma versão de um password generator que eu construi.

Quanto ao descodificador, vbmaster, vou tratar disso a seguir. Até vos deixo experimentar depois.

Não será muito dificil de qualquer forma.

Algumas ideias que tenham façam favor de as deitar cá para fora. Assim como as sugestões.

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Quanto ao descodificador, vbmaster, vou tratar disso a seguir. Até vos deixo experimentar depois.

Bem, agor que penso nisso, desde que o numero da letra codificada tenha sempre 5 dígitos até se faz bem.

Um dia destes, quem sabe...hei de fazer isso :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas queres fazer o que? uma cena pra codificar/descodificar ?

(tb tenho outras ideias para isso, qq coisa MSN :P)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Mas queres fazer o que? uma cena pra codificar/descodificar ?

(tb tenho outras ideias para isso, qq coisa MSN :P)[/size']

E pa a ideia inicial é mesmo criar a ferramenta (que me está a dar algumas dores de cabeça...) e a contra-ferramenta (descodificador).

Depois de os criar, através desta linguagem numérica podem abrir-se outras portas. Mas a ideia inicial mesmo é acabá-la, ficar com a estrutura e só depois pensar na fase seguinte.

Eu estou agora um pouco ocupado com a programação da ferramenta, mas mais logo conversamos. ;)

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ok então vamos lá actualizar o que eu fiz até agora, porque parece que cheguei ao fim da linha e não sei mais o que fazer.

Cá vai o código, devidamente comentado espero eu (para uma melhor compreensão do código façam copy-paste para o vosso compilador):

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

#define MAX 500000

static char text [MAX];
static int serial;

/* Aqui começa a fase de estruturação do código
que vai servir de apoio para a conversao das diferentes
letras em numero. A serial fui eu que elaborei e inventei
e só contem algarismos de 1 a 5, sendo atribuido um conjunto
de 5 numeros diferentes a cada letra do alfabeto. */


char corresponde()
{

   int x;
   switch (text[0]){
                     case 'a':
                          serial=12345;  break;
                     case 'b':
                          serial=22345;  break;
                     case 'c':
                          serial=32345;  break;
                     case 'd':
                          serial=42345;  break;
                     case 'e':
                          serial=52345;  break;
                     case 'f':
                          serial=23345;  break;
                     case 'g':
                          serial=24345;  break;
                     case 'h':
                          serial=25345;  break;
                     case 'i':
                          serial=23445;  break;
                     case 'j':
                          serial=23545;  break;
                     case 'k':
                          serial=23455;  break;
                     case 'l':
                          serial=33455;  break;
                     case 'm':
                          serial=43455;  break;
                     case 'n':
                          serial=53455;  break;
                     case 'o':
                          serial=44455;  break;
                     case 'p':
                          serial=45455;  break;
                     case 'q':
                          serial=44555;  break;
                     case 'r':
                          serial=54555;  break;
                     case 's':
                          serial=55555;  break;
                     case 't':
                          serial=11555;  break;
                     case 'u':
                          serial=12555;  break;
                     case 'v':
                          serial=13555;  break;
                     case 'w':
                          serial=14555;  break;
                     case 'x':
                          serial=15555;  break;
                     case 'y':
                          serial=25555;  break;
                     case 'z':
                          serial=35555;  break;
                          }
                          }

    /*Esta função converte o texto em numeros de 5 algarismos,
    sendo esses numeros exactamente os mesmos que estao na função
    anterior. Ora isto deveria fazer com que cada letra originasse um numero,
    mas o que esta a acontecer e que so aparece a serial da primeira letra de cada texto*/      

char conversao()
{
    int i=strlen(text);
    text[5*i]=text[i];
    
    for(i--; i>=0; i--)
    {
             text[5*i]=text[i];
             text[5*i+1]=serial;
             
             }
             }
    

/*Função main-->a principal que executa o codigo*/   

int main()
{
   printf("Introduza o texto: \n");
   gets(text);
   corresponde();
   conversao();
  
   printf("%d\n",serial);
   
   system("PAUSE");
   
   return 0;
   
}

Ora, como aparece no comentário após execução do código acontece que só gera um numero de 5 algarismos, correspondente á primeira letra do texto inserido.

Supostamente, na fase inicial deveria ser atribuido 5 numeros para cada letra, mas parece que vou precisar de algo mais aqui para que isso aconteça.

Estive a pensar criar uma função que lesse o texto letra a letra e fosse atribuindo os respectivos numeros a cada uma das letras, juntando-os todos uns a seguir aos outros.

Mas o problema é que não estou a conseguir criar essa tal função.

Sugestões? Preciso mesmo delas.... ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ve lá se te ajuda...embora feito em c++ :P

#include <iostream.h>
using namespace std;
void main () {
int i = -1;
int ch;
int texto[200];
int codigo;
cout << "Escreva um texto a ser codificado (acabar com '*'):" << endl;
while ((ch = tolower(cin.get())) != '*') {
	switch(ch) {
		case 'a': codigo=12345;texto[++i] = codigo;  break;
		case 'b': codigo=22345; texto[++i] = codigo; break;
           case 'c': codigo=32345; texto[++i] = codigo; break;              
           case 'd': codigo=42345;texto[++i] = codigo;  break;         
           case 'e': codigo=52345;texto[++i] = codigo;  break;              
           case 'f': codigo=23345;texto[++i] = codigo;  break;         
           case 'g': codigo=24345;texto[++i] = codigo;  break;              
           case 'h': codigo=25345;texto[++i] = codigo;  break;         
           case 'i': codigo=23445; texto[++i] = codigo; break;  
           case 'j': codigo=23545;texto[++i] = codigo;  break;                           
           case 'k': codigo=23455;texto[++i] = codigo;  break;         
           case 'l': codigo=33455; texto[++i] = codigo; break;              
           case 'm': codigo=43455;texto[++i] = codigo;  break;         
           case 'n': codigo=53455;texto[++i] = codigo;  break;              
           case 'o': codigo=44455;texto[++i] = codigo;  break;         
           case 'p': codigo=45455;texto[++i] = codigo;  break;              
           case 'q': codigo=44555;texto[++i] = codigo;  break;         
           case 'r': codigo=54555;texto[++i] = codigo;  break;         
           case 's': codigo=55555; texto[++i] = codigo; break;                        
           case 't': codigo=11555;texto[++i] = codigo;  break;
           case 'u': codigo=12555;texto[++i] = codigo;  break;              
           case 'v': codigo=13555; texto[++i] = codigo; break;         
           case 'w': codigo=14555;texto[++i] = codigo;  break;              
           case 'x': codigo=15555;texto[++i] = codigo;  break;         
		case 'y': codigo=25555;texto[++i] = codigo;  break;              
		case 'z': codigo=35555;texto[++i] = codigo;  break;

	}
}
for (int j; j<= i; ++j)
cout << texto[j];
cout << endl;
system("PAUSE");
}

vou tentar explicar mais ou menos o que cada função faz:

- A primeira parte acho que consegues perceber. Defino 3 valores do tipo int e uma array de int's - a variável que guardará todo o texto codificado;

- O cout é o comando que mostra valores na consola (acho que equivale ao printf()). Neste caso informei o user que para terminar a escrita do texto se tem de inserir * e teclar enter;

- endl faz mudar de linha;

- Depois faço ums instrução while que só acabará quando o ch for igual a *. Em cada ciclo do while ch toma um valor que é comparado a algo na instrução switch. Nessa mesma instrução switch afecta-se ao codigo o valor numerico que se quer. Seguidamente diz-se que o campo i da array de int's texto, terá o valor = código. A cada ciclo do while, i += 1. Portanto em cada campo da array de int's texto, estará um codigo que representa uma letra.

- Depois é só fazer um for que "coute" cada campo da array texto. Note-se texto tem um máximo de 200 valores int (200 campos). Como tal se o texto inserido tiver menos acaracteres que isso o programa acabava a "coutar"  vários zeros. Desta maneira, ao fazer "j <= i" ele só couta até ao número de caracteres inseridos.

Enfim....acho que não fui muito explícito e um pouco confuso... :oops:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Confuso mas deu para compreender. Vou ver se elaboro um código o mais parecido possível em C.

Desde já obrigado pela colaboração.

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas,

Finalmente o código a funcionar. Com a ajuda e colaboração do vbmaster assim como algumas dicas de um colega americano, mas lá funcionou;

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

main()
{     
     int i;
     char *p;
     char theBuffer [200]; //Aqui esta o possivel tamanho do texto//
     char Lista [] = "abcdefghijklmnopqrstuvwxyz"; //lista de caracteres
     
     /*Abaixo temos a lista das serials que substituem os caracteres*/
     
     int  Serials [26] = {
                      12345,22345,32345,42345,52345,
                      23345,24345,25345,23445,23545,
                      23455,33455,43455,53455,44455,
                      45455,44555,54555,55555,11555,
                      12555,13555,14555,15555,25555,
                      35555
                     };
     while(1){
                              
     printf("Escreva o texto para substituir:\n\n");
     rewind(stdin);
     
     /*A função gets pode originar buffer overflow
     que consequentemente pode causar destruição do programa,
     ou ate mesmo do disco rigido em casos extremos do seu uso.
     Por isso considero que se deve usar antes fgets.*/
     
     p=fgets(theBuffer,10,stdin);
     if(p=NULL)
     break;
     else
     printf("Texto convertido!\n");
     
     /*se a linha estiver vazia, sem caracteres, coisa dificil de acontecer*/
     
     if(!theBuffer[0])
     break;
     
     /*Aqui esta o segredo do programa.O ciclo for confere se o caracter esta na lista.
     Se estiver atribui-lhe o devido serial. Se não, escrev-o na sua forma original*/
     
     for(i=0;theBuffer[i];i++)
     {
     if(p = strchr(Lista,theBuffer[i]))
     {
          printf("%d",Serials[p-Lista]);
     }
     
     else
     {
         printf("%c",theBuffer[i]);
         }
         
     }
     
     
     printf("\n");
     }
     system("PAUSE");
     return 0;
     }
     
     
     
     

Estava já há um dia a tentar arranjar soluções para isto. Bem parece que a fase inicial está completa.

Próximos passos:

➔ aperfeiçoamento do código;

➔ introdução de novas funções relativas a operações com caracteres e ficheiros.

➔ aperfeiçoamento da linguagem matemática.

➔ Criação de um descodificador.

O verdadeiro uso deste programa que vai saír daqui (ou não) será revelado mais tarde.

Agradecimentos ao vbmaster que se meteu comigo neste projecto enquanto se queixava do som dos DZRT na TV... :P  ;)  ;)

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

int main() 
{ 
   printf("Introduza o texto: \n"); 
   gets(text); 
   corresponde(); 
   conversao(); 
   
   printf("%d\n",serial); 
   
   system("PAUSE"); 
   
   return 0; 
   
}

fofo, se ah funcao corresponde, nao lhe das "coisa nenhuma" para ela processar, ela nao faz "coisa alguma" !!

se a funcao corresponde nao recebe informacao, ela vai passar pelos switches... como chega ao fim sem encontrar nada... nao te da nada para o ecra ;)

anda la, começa a trabalhar funcoes ah homme!!

outra cena:

char corresponde() 

char?! a funcao nao vai devolver char algum... alias, nem o return tem no fim :P

penso que o que queres eh que a funcao correspode receba um char e devolva o inteiro correspondente certo?

eu nem sei como isso passa sem warnings... tipo... a var "serial" nem seker ta declarada...

mais uma coisa... nao podes passar arrays inteiros de uma funcao para a outra. nem de inteiros nem de char's nem nada... tens que passar elemento a elemento (nada que um for na main nao resolva).

bem... ainda tens mto que treinar amigo... ta mta asneira pegada ai'...

eu vou olhar para isto com olhos de ver daqui a pouco! ou talvez amanha! ja sao duas da manha!

quanto akele codigo que dizes que arranjaste com um colega... nota-se bem que nao eh teu! ;)  ;) digo isto porque, pegas no codigo que tinhas, e no que tens... nao tem nada a ver... e digo-te mais... para dp aplicares esse code novo que tens, vais ter de o compilar ah parte e fazer um modulo dele (eh como eu agr faço os meus programas... tudo em modulos)

aconselho-te a reler a parte sobre funcoes do livro do damas... parece que essa parte nao ficou bem "fixa" :D

abraço!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ve lah se assim nao eh mto mais facil para ti perceberes o que fizeste:

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

#define MAX 5000

// static char text [MAX]; 
// static int serial; 

/* Aqui come?ßa a fase de estrutura?ß?£o do c??digo 
que vai servir de apoio para a conversao das diferentes 
letras em numero. A serial fui eu que elaborei e inventei 
e s?? contem algarismos de 1 a 5, sendo atribuido um conjunto 
de 5 numeros diferentes a cada letra do alfabeto. */ 


int corresponde(char c) 
{ 
 int serial = 0;

 switch (c)
 { 
   case 'a' : serial=12345;  break;
   case 'b' : serial=22345;  break; 
   case 'c' : serial=32345;  break; 
   case 'd' : serial=42345;  break; 
   case 'e' : serial=52345;  break; 
   case 'f' : serial=23345;  break; 
   case 'g' : serial=24345;  break; 
   case 'h' : serial=25345;  break; 
   case 'i' : serial=23445;  break; 
   case 'j' : serial=23545;  break; 
   case 'k' : serial=23455;  break; 
   case 'l' : serial=33455;  break; 
   case 'm' : serial=43455;  break; 
   case 'n' : serial=53455;  break; 
   case 'o' : serial=44455;  break; 
   case 'p' : serial=45455;  break; 
   case 'q' : serial=44555;  break; 
   case 'r' : serial=54555;  break; 
   case 's' : serial=55555;  break; 
   case 't' : serial=11555;  break; 
   case 'u' : serial=12555;  break; 
   case 'v' : serial=13555;  break; 
   case 'w' : serial=14555;  break; 
   case 'x' : serial=15555;  break; 
   case 'y' : serial=25555;  break; 
   case 'z' : serial=35555;  break; 
 } 

 return serial;
} 

/*Fun?ß?£o main-->a principal que executa o codigo*/    

int main() 
{ 
   char texto[MAX];
   int resultado[MAX],comp=0,var=0;

   printf("Introduza o texto: \n"); 
   scanf("%s", texto) ;

   while( comp != strlen(texto )
   {
     resultado[comp] = corresponde(texto[comp]);
     comp++;
   }

   while( var != comp )
   {  
     printf("%d",resultado[var]);
     var++; 
   }

   printf("\n");

   return 0; 

}

abraço!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas redhat,

De facto o código que elaborei foi feito com ajuda. No entanto não deixa de ter sido elaborado por mim.

Sei que cometo alguns erros aí pelo meio. O objectivo neste momento foi voltar a programar em C e fazer uma aplicação com utilidade e dificuldade maior do que aquelas que eu já tinha feito pelo livro do Damas.

Por isso, é normal que cometa alguns erros. Vou agora recomeçar a corrigi-los.

Bem quanto ao código que me propuseste (baseado no código que eu tinha elaborado anteriormente), contem alguns erros tambem.

Estou a utilizar o DevC++, e dá os seguintes erros após a compilação:

g++.exe "C:\Documents and Settings\Administrador.CASA-6110849260\Ambiente de trabalho\Encriptação á deathseeker\myversion.cpp" -o "C:\Documents and Settings\Administrador.CASA-6110849260\Ambiente de trabalho\Encriptação á deathseeker\myversion.exe"    -I"C:\Dev-Cpp\include\c++\3.3.1"  -I"C:\Dev-Cpp\include\c++\3.3.1\mingw32"  -I"C:\Dev-Cpp\include\c++\3.3.1\backward"  -I"C:\Dev-Cpp\lib\gcc-lib\mingw32\3.3.1\include"  -I"C:\Dev-Cpp\include"   -L"C:\Dev-Cpp\lib" 
C:/Documents and Settings/Administrador.CASA-6110849260/Ambiente de trabalho/Encriptação á deathseeker/myversion.cpp: In
  function `int main()':
C:/Documents and Settings/Administrador.CASA-6110849260/Ambiente de trabalho/Encriptação á deathseeker/myversion.cpp:65: error: syntax
  error before `{' token

C:/Documents and Settings/Administrador.CASA-6110849260/Ambiente de trabalho/Encriptação á deathseeker/myversion.cpp: At
  global scope:
C:/Documents and Settings/Administrador.CASA-6110849260/Ambiente de trabalho/Encriptação á deathseeker/myversion.cpp:70: error: syntax
  error before `while'
C:/Documents and Settings/Administrador.CASA-6110849260/Ambiente de trabalho/Encriptação á deathseeker/myversion.cpp:73: error: syntax
  error before `++' token
C:/Documents and Settings/Administrador.CASA-6110849260/Ambiente de trabalho/Encriptação á deathseeker/myversion.cpp:76: error: ISO
  C++ forbids declaration of `puts' with no type
C:/Documents and Settings/Administrador.CASA-6110849260/Ambiente de trabalho/Encriptação á deathseeker/myversion.cpp:76: error: `
  int puts' redeclared as different kind of symbol
C:/Dev-Cpp/include/stdio.h:240: error: previous declaration of `int puts(const 
  char*)'
C:/Documents and Settings/Administrador.CASA-6110849260/Ambiente de trabalho/Encriptação á deathseeker/myversion.cpp:76: error: invalid
  conversion from `const char*' to `int'
C:/Documents and Settings/Administrador.CASA-6110849260/Ambiente de trabalho/Encriptação á deathseeker/myversion.cpp:78: error: syntax
  error before `return'
C:/Documents and Settings/Administrador.CASA-6110849260/Ambiente de trabalho/Encriptação á deathseeker/myversion.cpp:79: error: ISO
  C++ forbids declaration of `system' with no type
C:/Documents and Settings/Administrador.CASA-6110849260/Ambiente de trabalho/Encriptação á deathseeker/myversion.cpp:79: error: `
  int system' redeclared as different kind of symbol
C:/Dev-Cpp/include/stdlib.h:356: error: previous declaration of `int 
  system(const char*)'
C:/Documents and Settings/Administrador.CASA-6110849260/Ambiente de trabalho/Encriptação á deathseeker/myversion.cpp:79: error: invalid
  conversion from `const char*' to `int'
C:/Documents and Settings/Administrador.CASA-6110849260/Ambiente de trabalho/Encriptação á deathseeker/myversion.cpp:81: error: syntax
  error before `}' token
C:/Documents and Settings/Administrador.CASA-6110849260/Ambiente de trabalho/Encriptação á deathseeker/myversion.cpp:81:2: warning: no newline at end of file

Execution terminated

Compila tu tambem e verifica os erros. Existem algus erros que não estou a compreender, porque aparecem a seguir ao while.

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

lol

ibook-g4-de-joao-ferreira:~ jmf$ gcc -Wall death.c 
ibook-g4-de-joao-ferreira:~ jmf$ ./a.out 
Introduza o texto: 
joao
23545444551234544455
ibook-g4-de-joao-ferreira:~ jmf$ 

meu filho... codigo com menos erros que isto... eh impossivel xD

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
lol

ibook-g4-de-joao-ferreira:~ jmf$ gcc -Wall death.c 
ibook-g4-de-joao-ferreira:~ jmf$ ./a.out 
Introduza o texto: 
joao
23545444551234544455
ibook-g4-de-joao-ferreira:~ jmf$ 

meu filho... codigo com menos erros que isto... eh impossivel xD

I-Book G4? LOL...MAC OSX...pois estamos a faer programas para plataformas diferentes. ;)

Eu uso Windows e DevC++ e dá-me todos estes erros.

No entanto vou ver o que posso fazer.

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

:\ o C eh suposto ser universal... se o codigo nao tem erros em *nix, nao tem erro em plataforma nenhuma....

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
:\ o C eh suposto ser universal... se o codigo nao tem erros em *nix, nao tem erro em plataforma nenhuma....

Isto neste caso...utiliza bibliotecas que são comuns a todas as plataformas e é um programa relativamente simples de fazer e sem conteudo muito "complicado". Agora, sei tambem que existem bibliotecas próprias para sistema *nix, para Windows e talvez até para MAC OSX.

Pelo menos foi a sensação que tive ao ler posts de pessoal aqui do forum e de outros foruns.

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

uma questão curiosa.. porque é que um inteiro em win ocupa 2 bytes e em nix 4 bytes ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
uma questão curiosa.. porque é que um inteiro em win ocupa 2 bytes e em nix 4 bytes ?

Uma questão que não te sei responder á partida mas que me está a por curioso, logo vou investigar e respondo-te de seguida.

Já agora, aproveito para dizer que já consegui compilar o código fornecido pelo redhat (o meu código com as devidas correcções) e que vou agora adicionar umas funções que estava testar no outro código e de seguida já faço o lançamento oficial da nova versão do programa no devido tópico.

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

:shock:

lol ocupa 4bytes em kk lado do mundo com kk sistema operativo 32bits.... se for um amd64 com um sistema x64_84 ja ocupa 8...

inteiro de 2 bytes eh do tempo da MegaDrive...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora