Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - la funzione atoi
Forum - C/C++ - la funzione atoi

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
frankus89 (Normal User)
Rookie


Messaggi: 23
Iscritto: 20/02/2009

Segnala al moderatore
Postato alle 19:21
Giovedì, 02/04/2009
la prima speigazione su questo forum mi è serivita per capire finalemte cosa sono le liste, e come usarle al meglio..
adesso ho un altro "problema":

la funzione atoi ha come prototipo
Codice sorgente - presumibilmente C/C++

  1. int atoi ( const char * str );



ma alla fine del mio programma mi esce sempre uno 0 che dovrebbe significare che la conversione non è valida...

eppure non mi sembra di aver fatto errori;
comunque:

#include <iostream>
#include <stdlib.h>
using namespace std;

int main()
{
    char stringa [10];
    int intero;
  cout << "stringa: ";
  gets(stringa);
  intero = atoi (stringa);
  cout << intero;
  return (0);
}



salutii

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 21:37
Giovedì, 02/04/2009
Non ho capito il problema ... il programma fa quello per cui e' stato scritto ...

PM Quote
Avatar
frankus89 (Normal User)
Rookie


Messaggi: 23
Iscritto: 20/02/2009

Segnala al moderatore
Postato alle 19:37
Venerdì, 03/04/2009
il problema è nel fatto che qualsiasi stringa non viene convertita..
ma viene ritornato solo il valore 0, presente nel main.
il programma dunque non funziona come dovrebbe.

PM Quote
Avatar
Il_maca (Normal User)
Rookie


Messaggi: 49
Iscritto: 19/12/2008

Segnala al moderatore
Postato alle 16:33
Sabato, 04/04/2009
Testo quotato

Postato originariamente da frankus89:

il problema è nel fatto che qualsiasi stringa non viene convertita..
ma viene ritornato solo il valore 0, presente nel main.
il programma dunque non funziona come dovrebbe.



esce 0 perchè la stringa non può essere convertita! quando compili il programma, all'aquisizione della stringa da convertire, inserisci solo caratteri numerici, vero?? altrimenti la funzione restituisce 0!
io l'ho appena compilato col gcc!! funziona molto bene!! quindi il problema è all'acquisizione!! dovresti mettere solo caratteri numerici!

Ultima modifica effettuata da Il_maca il 04/04/2009 alle 16:36
PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 0:23
Domenica, 05/04/2009
Testo quotato

Postato originariamente da frankus89:

il problema è nel fatto che qualsiasi stringa non viene convertita..
ma viene ritornato solo il valore 0, presente nel main.
il programma dunque non funziona come dovrebbe.



Il programma funziona come dovrebbe.

Molto probabilmente sei tu (senza polemica) a non aver ben chiaro cosa dovrebbe fare quel programma.

Che intendi per "convertire la stringa"?

Se a quel programma passi una stringa tipo "12345" la converte correttamente nel corrispondente valore numerico intero 12345 ... e quindi fa tutto quello per cui e' stato scritto ...

PM Quote
Avatar
frankus89 (Normal User)
Rookie


Messaggi: 23
Iscritto: 20/02/2009

Segnala al moderatore
Postato alle 16:54
Domenica, 05/04/2009
ah ecco!!
grazie per il chiarimento!!!
io pensavo che la funzione convertisse qualsiasi stringa, non solo numerica!!!
quindi sia la atoi che la atof convertono solo stringhe di numeri in numeri!!
Evidentemente non avevo capito bene..

e se volessi dunque convertire una stringa qualsiasi in un numero int o float, conoscete l'esistenza di qualche funzione oppure occorre implementarne una??

PM Quote
Avatar
Il_maca (Normal User)
Rookie


Messaggi: 49
Iscritto: 19/12/2008

Segnala al moderatore
Postato alle 18:15
Domenica, 05/04/2009
Testo quotato

Postato originariamente da frankus89:
e se volessi dunque convertire una stringa qualsiasi in un numero int o float, conoscete l'esistenza di qualche funzione oppure occorre implementarne una??



scusa non ho capito!
ad esempio se ho una stringa:
ciao!
cosa dovrebbe darmi la funzione??il codice ascii di ogni singolo carattere?

PM Quote
Avatar
frankus89 (Normal User)
Rookie


Messaggi: 23
Iscritto: 20/02/2009

Segnala al moderatore
Postato alle 18:45
Domenica, 05/04/2009
esatto!! è proprio questo che vorrei io!!

PM Quote
Avatar
Il_maca (Normal User)
Rookie


Messaggi: 49
Iscritto: 19/12/2008

Segnala al moderatore
Postato alle 19:36
Domenica, 05/04/2009
allora, io ho fatto in questo modo
Codice sorgente - presumibilmente C++

  1. #include <iostream>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8.     char stringa [10];
  9.     int intero,x=0;
  10.   cout << "stringa: ";
  11.   gets(stringa);
  12.   for (x=0;x < strlen(stringa);x++){
  13.           intero=stringa[x];
  14.           cout<<intero<<"\n";
  15.           }
  16.   return (0);
  17. }



solo ke in questo modo visualizza il valore dei caratteri ascii carattere per carattere!
se li vuoi in un'unica variabile intera, il discorso si complica un pochettino!
fammi sapere se va bene così

Ultima modifica effettuata da Il_maca il 05/04/2009 alle 19:38
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo