1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Sistema de Leitura em C++

Discussão em 'Programação' iniciada por Spiderman, 27 de Abril de 2008. (Respostas: 3; Visualizações: 1095)

  1. Spiderman

    Spiderman I folded Myself

    Bem, aqui estou com mais um problemazinho engraçado.
    O codigo pra ajudar a explicar é este:

    Código:
    int linha;
    char tmp[8];
    
    	cout << " Linha: ";
    	cin >> tmp;
    	if(tmp[0]=='s' && tmp[1]=='a' && tmp[2]=='i' && tmp[3]=='r')exit(0);
    	linha = atoi(tmp);
    
    Vou explicar.
    Estou a fazer um programa que tem de ler um valor (int) do utilizador. Mas quando se metia letras, o programa "explodia". Procurei, e arranjei uma maneira, que era criar um array de char's, e depois com a função atoi() converter para numeros.

    Depois, achei interessante, ter a possibilidade de sair do programa, caso o utilizador escrevesse "sair".

    Isto seria mais interessante caso fosse com string, em que era so fazer:

    Código:
    if(tmp="sair")exit(0);
    
    O que eu queria saber, é se ha alguma maneira de converter uma string em int. É que so encontrei esta maneira de char para int.

    Alguem saberá?
     
  2. Boo

    Boo

    tao e a funçao atoi nao faz isso q keres? o.O
     
  3. acfryx

    acfryx Power Member

    Sim podes...

    Código:
    #include <string>
    using std::string;
    
    //...
    int linha;
    string tmp;
    
    cout << "Linha: ";
    cin >> tmp;
    
    if (tmp == "sair") exit(0);
    
    linha = atoi(tmp.c_str()); // tmp.c_str convert o objecto string para uma C string
    //...
    
    
    Ou, para comparar tmp com "sair" podes usar:

    Código:
    #include <string.h>
    
    //...
    if (strcmp(tmp, "sair") == 0) exit(0);
    //...
    
    Vê: http://www.thinkage.ca/english/gcos/expl/c/lib/strcmp.html
     
  4. Spiderman

    Spiderman I folded Myself

    Ok, já funciona, tks :)
     
    Última edição: 27 de Abril de 2008

Partilhar esta Página