(06/12/2013, 17:14)digger Ha scritto: [Per vedere i link devi REGISTRARTI.]
uno dei modi (come al solito) per fare quello che dici è questo :
C++ Programming
#include <stdlib.h>
...
...
b = atoi(x.c_str());
nota inoltre che c'è un errore anche nella funzione "esiste_numero" in quanto la comparazione che stai facendo con x>="0" e x<="999999" la stai facendo tra stringhe e non tra numeri quindi non ti tornerà il risultato sperato, ad esempio per lui 9 è > 10 tanto per dire!
quindi ti conviene convertire subito x in intero e quindi fare tutti i ragionamenti con l'intero e quindi anche la funzione esiste_numero farla in modo che si aspetti un intero
x non me lo fa convertire in int,
se faccio così :
C++ Programming
int x = settings["user"];
mi fa errore
1>c:\documents and settings\user\documenti\visual studio 2010\projects\thanks 1\thanks 1\main.cpp(57): error C2440: 'inizializzazione': impossibile convertire da 'std::basic_string<_Elem,_Traits,_Ax>' a 'int'
__ EDIT
Ho risolto
grazie, ho fatto così :
C++ Programming
bool esiste_numero ( int x )
{
if ( x >= 0 && x <= 999999 )
{
return true;
}
return false;
}
int main ()
{
const char* filename="settings.txt";
settingsMap settings;
leggi_settaggi(filename,settings);
string x = settings["user"];
int b = atoi ( x.c_str() );
if ( esiste_numero(b) == true)
{
cout << "ID : " << b << endl;
}
else
{
cout << "L'ID non puo' contenere piu' di 999999 numeri e non puo' avere lettere" << endl;
}
system("pause");
return 0;
}