msmsms Posted August 3, 2014 Report Share Posted August 3, 2014 estou a tentar compilar este exemplo que encontrei pois preciso de utilizar a função atoll() num trabalho para representar um numero inteiro de 12 digitos e a função atoi() apenas pode representar até 9 digitos no entanto o meu compilar dá erro para atoll() mas não dá para atoi() ou para atol() alguem me consegue explicar o que tenho de fazer para que este consiga reconhecer esta função? se alguém conhecer uma função alternativa à função atoll() para converter uma string num long long int também fico grato pois o livro que tenho só fala da função atoi() para converter strings em inteiros no entanto esta função não é funcional para números com uma quantidade de dígitos decente eu uso o winXP 32 bits também não sei se a atol() apenas com um <l> so consegue 9 digitos tal como a atoi() por causa disso, pelo que acho que tenho mesmo de seguir este exemplo que encontrei com a função atoll() com dois <l> que deverá devolver um inteiro com capacidade acima de 9 digitos. eu estou a usar como IDE o visual c++ /* atoll example */ #include <stdio.h> /* printf, fgets */ #include <stdlib.h> /* atoll */ int main () { long long int lli; char buffer[256]; printf ("Enter a long number: "); fgets (buffer, 256, stdin); lli = atoll(buffer); printf ("The value entered is %lld. Its double is %lld.\n",lli,lli*2); return 0; } Link to comment Share on other sites More sharing options...
mogers Posted August 3, 2014 Report Share Posted August 3, 2014 No meu compilador, esse codigo corre perfeitamente. Qual e' o erro que o visual c++ da' ? "What we do for ourselves dies with us. What we do for others and the world, remains and is immortal.", Albert Pine Blog pessoal : contém alguns puzzles, algoritmos e problemas para se resolver com programação. Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted August 3, 2014 Report Share Posted August 3, 2014 http://msdn.microsoft.com/en-us/library/czcad93k%28v=VS.100%29.aspx IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
msmsms Posted August 3, 2014 Author Report Share Posted August 3, 2014 No meu compilador, esse codigo corre perfeitamente. Qual e' o erro que o visual c++ da' ? o erro tal como indiquei deve-se à função atoll() e como preciso dela para conseguir a solução de um numero long long não a posso desactivar a menos que exista uma alternativa à atoll() que não seja tão reles como atoi() ou atol() error C3861: 'atoll': identifier not found uma vez que dizes que a função atoll() corre no teu computador podes partilhar comigo o teu ficheiro stdlib.h ? Link to comment Share on other sites More sharing options...
msmsms Posted August 4, 2014 Author Report Share Posted August 4, 2014 (edited) http://msdn.microsoft.com/en-us/library/czcad93k%28v=VS.100%29.aspx eu ja tinha visto esse esboço, isso não resulta quando se entra no programa com mais de 9 digitos dá-se o overflow e no fim não obtenho o inteiro com pelo menos 12 digitos a ultima experiência que é feita nesse código e que eu queria que de-se certo dá logo barraca entrando sempre em overflow // Another example of the _atoi64 function // with an overflow condition occurring. str = "3336402735171707160320"; value = _atoi64( str ); printf( "Function: _atoi64( \"%s\" ) = %d\n", str, value ); if (errno == ERANGE) { printf("Overflow condition occurred.\n"); } será que a função atoll() não corre no meu computador por causa de ser windows 32bits ou será porque não tenho uma versão mais recente de compilação em c++? Edited August 4, 2014 by msmsms Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted August 4, 2014 Report Share Posted August 4, 2014 vou assumir que estás a aprender e não simplesmente a gozar com o pessoal do fórum, porque olha bem para os teus post : ... no fim não obtenho o inteiro com pelo menos 12 digitos ... str = "3336402735171707160320"; consegues contar quantos dígitos tem a tua string ??? se sabes que tens problemas sobre o valor ser demasiado grande, deverias saber o porque desses problemas. lê este artigo da wikipedia, pensa no que andas a fazer tanto em código como as respostas que apresentas aqui no fórum : http://en.wikipedia.org/wiki/Integer_(computer_science) IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now