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

[AJUDA] Qual o erro desse código?


Ícaro Gabriel Sena Valadar

Pergunta

Salve galera, to precisando de uma ajuda nesse código abaixo para ler um site e validar-lo, está dando um pequeno no int main():
 
ERRO:

In function 'int valida_email(char*)':
 234:33: error: a function-definition is not allowed here before '{' token  
 252:1:  error: expected '}' at end of input 
 252:1: error: expected '}' at end of input 
 252:1: error: expected '}' at end of input 
 252:1: warning: control reaches end of non-void function [-Wreturn-type] 
IMAGEM ANEXADA!

CÓDIGO:

#include<iostream>
#include<ctype.h>
#include<stdio.h>

using namespace std;
 
int valida_email(char email[])
{


        int estado = 0, i;


    


    for(i=0; email != '\0'; i++)
     {

        if (estado == 0)
        { 
           
           if (email== 'w')
           {
               estado = 1;
           }
           else
           {
               estado = 13;
           }
        }
        else if (estado ==1)
        {
            
          if (email== 'w')
           {
               estado = 2;
           }
           else
           {
               estado = 13;
           }
        }
        else if (estado ==2)
        {
            
          if (email=='w')
           {
               estado = 3;
           }
           else
           {
               estado = 13;
           }
        }
        else if (estado ==3)
        {
            
          if (email== 'w')
           {
               estado = 4;
           }
           else
           {
               estado = 13;
           }
        }
        else if (estado ==4)
        {
            
          if (email== '.')
           {
               estado = 5;
           }
           else
           {
               estado = 13;
           }
        }


        else if (estado ==5)
        {
            
          if (isalpha(email)  || isdigit(email))
           {
               estado = 6;
           }
           else
           {
               estado = 13;
           }
        }


        else if (estado ==5)
        {
            
          if (isalpha(email)  || isdigit(email))
           {
               estado = 5;
           }
           else if (email == '.')
           {
               estado= 6 ;
           }   
           else
           {
               estado = 13;
           }
        }

        else if (estado ==6)
        {
            
          if (isalpha(email)  || isdigit(email))
           {
               estado = 7;
           }
           else
           {
               estado = 13;
           }
        }


        else if (estado ==7)
        {
            
          if (isalpha(email)  || isdigit(email))
           {
               estado = 8;
           }
           
           else
           {
               estado = 13;
           }
        } 

        
        else if (estado ==8)
        {
            
          if (isalpha(email)  || isdigit(email))
           {
               estado = 9;
           }
           
           else
           {
               estado = 13;
           }
        } 
        
        else if (estado ==9)
        {
            
          if (isalpha(email)  || isdigit(email))
           {
               estado = 10;
           }
           
           else
           {
               estado = 13;
           }
        } 
  
        else if (estado ==10)
        {
            
          if (email == '.')
           {
               estado = 11;
           }
           
           else
           {
               estado = 13;
           }
        }   


        else if (estado ==11)
        {
            
          if (isalpha(email)  || isdigit(email))
           {
               estado = 12;
           }
           
           else
           {
               estado = 13;
           }
        }  


        else if (estado ==12)
        {
            
          if (isalpha(email)  || isdigit(email))
           {
               estado = 14;
           }
           
           else
           {
               estado = 13;
           }
        } 
          
        if(estado ==13)
        {

           break;
        {

        if ( (estado == 10) || (estado == 7) )  
        {
           return(1);
        } 
        else 
        {  

          return(0);
     }

}

   
int main(int argc, char** argv){
    
  char x[51];

  cout<<"\n Digite o email : ";
  cin>>x; 
  
  if(valida_email(x) == 1)
  {
    cout<<"\n\n Email valido.";
  }
  else
  {
    cout<<"\n\n Email invalido!!";
  }
    
  return 0;
  
}

 

ww.jpg

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

faltem 3 chaves para fechar a função
 

#include<iostream>
#include<ctype.h>
#include<stdio.h>

using namespace std;

int valida_email ( char email[] ) {

    int estado = 0, i;
    
    for ( i = 0; email != '\0'; i++ ) {
    
        if ( estado == 0 ) {
        
            if ( email == 'w' ) {
                estado = 1;
            } else {
                estado = 13;
            }
        } else if ( estado == 1 ) {
        
            if ( email == 'w' ) {
                estado = 2;
            } else {
                estado = 13;
            }
        } else if ( estado == 2 ) {
        
            if ( email == 'w' ) {
                estado = 3;
            } else {
                estado = 13;
            }
        } else if ( estado == 3 ) {
        
            if ( email == 'w' ) {
                estado = 4;
            } else {
                estado = 13;
            }
        } else if ( estado == 4 ) {
        
            if ( email == '.' ) {
                estado = 5;
            } else {
                estado = 13;
            }
        }
        
        
        else if ( estado == 5 ) {
        
            if ( isalpha ( email )  || isdigit ( email ) ) {
                estado = 6;
            } else {
                estado = 13;
            }
        }
        
        
        else if ( estado == 5 ) {
        
            if ( isalpha ( email )  || isdigit ( email ) ) {
                estado = 5;
            } else if ( email == '.' ) {
                estado = 6 ;
            } else {
                estado = 13;
            }
        }
        
        else if ( estado == 6 ) {
        
            if ( isalpha ( email )  || isdigit ( email ) ) {
                estado = 7;
            } else {
                estado = 13;
            }
        }
        
        
        else if ( estado == 7 ) {
        
            if ( isalpha ( email )  || isdigit ( email ) ) {
                estado = 8;
            }
            
            else {
                estado = 13;
            }
        }
        
        
        else if ( estado == 8 ) {
        
            if ( isalpha ( email )  || isdigit ( email ) ) {
                estado = 9;
            }
            
            else {
                estado = 13;
            }
        }
        
        else if ( estado == 9 ) {
        
            if ( isalpha ( email )  || isdigit ( email ) ) {
                estado = 10;
            }
            
            else {
                estado = 13;
            }
        }
        
        else if ( estado == 10 ) {
        
            if ( email == '.' ) {
                estado = 11;
            }
            
            else {
                estado = 13;
            }
        }
        
        
        else if ( estado == 11 ) {
        
            if ( isalpha ( email )  || isdigit ( email ) ) {
                estado = 12;
            }
            
            else {
                estado = 13;
            }
        }
        
        
        else if ( estado == 12 ) {
        
            if ( isalpha ( email )  || isdigit ( email ) ) {
                estado = 14;
            }
            
            else {
                estado = 13;
            }
        }
        
        if ( estado == 13 ) {
        
            break;
            {
            
                if ( ( estado == 10 ) || ( estado == 7 ) ) {
                    return ( 1 );
                } else {
                
                    return ( 0 );
                }
                
            }
            
        }//<---falta!!!
    }//<---falta!!!
}//<---falta!!!

int main ( int argc, char** argv ) {

    char x[51];
    
    cout << "\n Digite o email : ";
    cin >> x;
    
    if ( valida_email ( x ) == 1 ) {
        cout << "\n\n Email valido.";
    } else {
        cout << "\n\n Email invalido!!";
    }
    
    return 0;
    
}

E este tipo de comparaciones está errado email == 'w', pois W é claramente um char, e email um string, si em todo caso W fosse um string você teria que usar a função strcmp para comparar, W deveria estar encerrada entre " e " e não entre ' e '. você poderia usar a classe string pois tratase de C++.

Link para o comentário
Compartilhar em outros sites

  • 0

Obrigado amigo era isso mesmo, as comparações na verdade são email == 'w', esse era o certo. Compilou sem erro, apesar

de que está sempre mostrando email invalido, mas isso é um erro da trancisão de estados, vou estudar o código e achar

esse erro, mas o maior problema que era compilar foi resolvido. Obrigado denovo!

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
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...