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

Problemas com itoa() [C]

Discussão em 'Programação' iniciada por LaNgSuYaR, 16 de Abril de 2007. (Respostas: 8; Visualizações: 11917)

  1. LaNgSuYaR

    LaNgSuYaR Power Member

    Boas! eu tenho um trabalho em C para terminar até ao final do semestre. Até aqui, tudo estava a correr bem, mas por estar a usar matrizes como ambiente para o utilizador, surgiu-me um pequeno problema.

    Eu estou a tentar converter um int para string, usando a função itoa(), mas estou a ter bastantes problemas com ela na medida em que está-me sempre a dar "Bus error". Já li por aí que a função itoa() é especialmente delicada em certas situações, mas precisava msmo disso porque quero imprimir inteiros numa matriz de char's e não arranjo maneira. Eu acho que o problema principal se encontra no uso de apontadores, mas para este caso é mesmo o que necessito. A função que estava a usar é a seguinte:

    Ora, eu já consegui perceber como a função funciona, não entendo é o erro que me aparece sempre. só se estiver a declarar mal o apontador na main()!

    Tnkx in advance!
    Cumps!
     
  2. Warrior

    Warrior Power Member

    Estou com pressa, de modo que não li o post, só o título.
    Usa o sprintf em vez do itoa.
     
  3. LaNgSuYaR

    LaNgSuYaR Power Member

    Warrior tnkx! já resolvi o prob.... já tinha lido qualquer coisa acerca do sprintf, mas deve ter-me passado a noção de 'buffer'!! Já me permitiu adiantar e quanto o trabalho! :D

    De qualquer das formas, fiquei com a curiosidade acerca do funcionamento da função itoa(), e que aparte a necessidade, fica o pedido de alguma informação concreta sobre a função!

    Abraço!
     
  4. sapropel

    sapropel Power Member

    http://cplusplus.com/reference/clibrary/cstdlib/itoa.html (para referencia)
    a função aceita 3 argumentos, o valor que queres converter, um buffer aonde guardar esse valor e a base numerica a ser usada.

    (...)
    int a = 325;
    char buffer[10];
    itoa( a, buffer, 10 );
    (...)

    buffer agora vai ter o valor "325\0"
     
  5. joth5

    joth5 Power Member

    vou aproveitar este topico :D

    itoa é para converter string para inteiro ( int )
    e para converter string para 'float' ??

    precisava da resposta com alguma urgencia :)

    desde de ja thnks ;)
     
    Última edição: 13 de Maio de 2007
  6. Warrior

    Warrior Power Member

    itoa é para converter um inteiro em string, não o contrário. Para converter uma string em float tens o "atof()".
     
  7. joth5

    joth5 Power Member

    ok..thnks ;)

    itoa é para converter um inteiro em string... entao _itoa é para converter uma string em inteiro


    e para converter um float em string como é ?
     
  8. HecKel

    HecKel The WORM

    Onde foste buscar isso do _itoa ser string em inteiro?

    isto, itoa significa integer to alpha (salvo erro), de forma similar consegues descobrir outras funções, no entanto com 2 segundos de google encontrei muita coisa, bastou-me pesquisar por itoa ;)

    Sobre float to string, http://www.thinkage.ca/english/gcos/expl/c/lib/ecvt.html

    abraços, HecKel
     
  9. Warrior

    Warrior Power Member

    float para string também podes usar o sprintf.

    Basicamente:
    Qualquer coisa para string: sprintf.
    String para inteiro: atoi()
    String para float: atof()
     

Partilhar esta Página