Sistema de Leitura em C++

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á?
 
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
 
Back
Topo