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


"Volevamo portare la democrazia in Medio Oriente. L'abbiamo uccisa in Occidente. Partecipa ai funerali,commossa ed affranta, l'informazione."
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 ...


- Se le mie risposte non vi soddisfano, ignoratele, altrimenti un "grazie" e' molto gradito ...

"Dai un pesce (programma) a un uomo e lo nutrirai per un giorno. Insegnagli a pescare (programmare) e lo nutrirai per tutta la vita." (niente pappa pronta)
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.


"Volevamo portare la democrazia in Medio Oriente. L'abbiamo uccisa in Occidente. Partecipa ai funerali,commossa ed affranta, l'informazione."
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


Il computer non è una macchina intelligente che aiuta le persone stupide.
E' una macchina stupida che funziona solo nelle mani delle persone intelligenti.
Programmatore, non per lavoro, ma per passione!!
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 ...


- Se le mie risposte non vi soddisfano, ignoratele, altrimenti un "grazie" e' molto gradito ...

"Dai un pesce (programma) a un uomo e lo nutrirai per un giorno. Insegnagli a pescare (programmare) e lo nutrirai per tutta la vita." (niente pappa pronta)
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??


"Volevamo portare la democrazia in Medio Oriente. L'abbiamo uccisa in Occidente. Partecipa ai funerali,commossa ed affranta, l'informazione."
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?


Il computer non è una macchina intelligente che aiuta le persone stupide.
E' una macchina stupida che funziona solo nelle mani delle persone intelligenti.
Programmatore, non per lavoro, ma per passione!!
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!!


"Volevamo portare la democrazia in Medio Oriente. L'abbiamo uccisa in Occidente. Partecipa ai funerali,commossa ed affranta, l'informazione."
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


Il computer non è una macchina intelligente che aiuta le persone stupide.
E' una macchina stupida che funziona solo nelle mani delle persone intelligenti.
Programmatore, non per lavoro, ma per passione!!
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo