Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

aiuto urgente(per domani) gestire errore in C++

Hai problemi con i file Zip, vuoi formattare l'HD, non sai come funziona FireFox? O magari ti serve proprio quel programmino di cui non ricordi il nome! Ecco il forum dove poter risolvere i tuoi problemi.

Moderatori: Dylan666, hydra, gahan

aiuto urgente(per domani) gestire errore in C++

Postdi lupinvv » 19/09/02 17:13

Lo so che qst non è il forum adatto,ma è URGENTE!Devo consegnare un progetto in c++ per un esame,e non so fare una cosa.Chi sa di c++ mi aiuti per favore.Non so come gestire l'errore un caso l'utente inserisca un char al posto di un int.Mi hanno detto che si fa con ATOI ma non so come.Per favore aiutatemi.Grazie...Ciao
Bookmakers italiani su http://www.italianbookmakers.it/ con licenza AAMS
lupinvv
Utente Senior
 
Post: 599
Iscritto il: 02/11/01 01:00
Località: Vibo Valentia

Sponsor
 

Esempio di utilizzo della funzione atoi in C

Postdi infinito1971 » 19/09/02 19:27

In C per convertire una stringa in una variabile numerica, si usano le seguenti funzioni della libreria standard:

int atoi(const char *s) per convertire una stringa in un intero.
double atof(const char *s) per convertire una stringa in un float.
long int atol(const char *s) per convertire una stringa in un long.




Riporto di seguito un esempio che illustra l'utilizzo della funzione atoi e che può essere utile per fissare le idee:


#include <stdio.h>

void main()
{
char Num[10];
int n;

printf("Inserisci un numero intero: ");
n=atoi(gets(Num));

printf("Hai inserito il numero %d\n");
}
Avatar utente
infinito1971
Utente Senior
 
Post: 531
Iscritto il: 01/08/02 21:22
Località: Napoli

Postdi shellylost » 19/09/02 19:42

ncv
Ultima modifica di shellylost su 20/09/02 15:33, modificato 1 volte in totale.
shellylost
 

Postdi lupinvv » 19/09/02 23:01

si,c++ usa i puntatori(porca miseria).Allora infi,un esempio di come gestire l'inserimento di 'a' in
int a;
cin>>a;

se inserisce un int,ok ma se inserisce un char?Grazie
Bookmakers italiani su http://www.italianbookmakers.it/ con licenza AAMS
lupinvv
Utente Senior
 
Post: 599
Iscritto il: 02/11/01 01:00
Località: Vibo Valentia

Postdi zello » 20/09/02 08:28

int a=-1;
do
{
std::cin>>a;
}while(a==-1);

Se l'estrattore non riesce a convertire in un intero, non varia il valore della variabile estratta.
Ovviamente, puoi anche ragionare alla java e fare il throw di una eccezione.

x shellylost
[quote]
...non so come funza il C++ ma se si aspetta un int e te gli passi un char non fa un casting implicito usando il codice ascii?
[quote]
In linea di massima, sì:

int a=4;
char c='a';
a+=c; //male che vada ti da un warning, ma non credo.

Ma in questo caso la funzione chiamata
std::istream& operator>>(std::istream& is,int& a);
'sa' che deve convertire un mucchio di caratteri che rappresenta un numero in questo numero.

E poi dai, shelly, è ora di imparare il C++ (ammenoché tu non voglia farti di marketing con il c#), non c'è nulla in grado di procurarti dei così bei mal di testa (apprezzo particolarmente le classi template e l'overloading gli operatori di conversione, ma se non hai mai neanche usato il c l'approccio con i puntatori e - meglio ancora - con i puntatori a puntatori sarà *fantastico*). E poi, siccome il C++ è passabilmente complesso, non c'è un compilatore che sia affidabile al 100% - e ti trovi, dopo aver scritto codice perfettamente standard, con errori del tipo "Internal compiler error". A volte invece compila perfettamente, ma l'eseguibile fa cose strane (tipo va una volta su cinque, funziona in debug e non in release, e così via).
Con java non c'è gusto. Va praticamente sempre (a dire la verità, odio proprio la mancanza di templates - possibile che ogni volta che tiro fuori qualcosa da un Vector mi tocca di fare un cast?)...

Ciao
Il faut être toujours ivre. Tout est là : c'est l'unique question. Pour ne pas sentir l'horrible fardeau du Temps qui brise vos épaules et vous penche vers la terre,il faut vous enivrer sans trêve...
Avatar utente
zello
Moderatore
 
Post: 2351
Iscritto il: 06/05/02 13:44

Postdi lupinvv » 20/09/02 08:34

Grazie proverò e speriamo bene!PEr qnt riguarda c++!Ma sei masochista?Cmq anch'io credo che l'utilizzo di template e puntatori,sia fantastico,ma le notti in bianco un pò di meno,cmq....Ciao,e grazie
Bookmakers italiani su http://www.italianbookmakers.it/ con licenza AAMS
lupinvv
Utente Senior
 
Post: 599
Iscritto il: 02/11/01 01:00
Località: Vibo Valentia

Postdi shellylost » 20/09/02 09:43

...
Ultima modifica di shellylost su 20/09/02 15:58, modificato 2 volte in totale.
shellylost
 

Postdi lupinvv » 20/09/02 15:20

Grazie a tutti!Sono riuscito a risolvere grazie anche al vostro aiuto.Per chi interessa ecco come ho fatto:

char c[10];
int co;
is>>c;
co=atoi(c);
while(co==0){
cout<<"\aAttenzione!!!Devi inserire un intero maggiore di 0\n";
cin>>c;
co=atoi(c);
}
Bookmakers italiani su http://www.italianbookmakers.it/ con licenza AAMS
lupinvv
Utente Senior
 
Post: 599
Iscritto il: 02/11/01 01:00
Località: Vibo Valentia


Torna a Software Windows


Topic correlati a "aiuto urgente(per domani) gestire errore in C++":


Chi c’è in linea

Visitano il forum: Nessuno e 14 ospiti