frankus89 (Normal User)
Rookie
Messaggi: 23
Iscritto: 20/02/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++ |
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
|
|
theprogrammer (Normal User)
Guru^2
Messaggi: 2509
Iscritto: 28/01/2009
|
Non ho capito il problema ... il programma fa quello per cui e' stato scritto ...
|
|
frankus89 (Normal User)
Rookie
Messaggi: 23
Iscritto: 20/02/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.
|
|
Il_maca (Normal User)
Rookie
Messaggi: 49
Iscritto: 19/12/2008
|
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 |
|
theprogrammer (Normal User)
Guru^2
Messaggi: 2509
Iscritto: 28/01/2009
|
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 ... |
|
frankus89 (Normal User)
Rookie
Messaggi: 23
Iscritto: 20/02/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??
|
|
Il_maca (Normal User)
Rookie
Messaggi: 49
Iscritto: 19/12/2008
|
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? |
|
frankus89 (Normal User)
Rookie
Messaggi: 23
Iscritto: 20/02/2009
|
esatto!! è proprio questo che vorrei io!!
|
|
Il_maca (Normal User)
Rookie
Messaggi: 49
Iscritto: 19/12/2008
|
allora, io ho fatto in questo modo
Codice sorgente - presumibilmente C++ |
#include <iostream> #include <stdlib.h> #include <string.h> using namespace std; int main() { char stringa [10]; int intero,x=0; cout << "stringa: "; gets(stringa); for (x=0;x < strlen(stringa);x++){ intero=stringa[x]; cout<<intero<<"\n"; } return (0); }
|
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 |
|