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++ - Problema .... :( Dichiarazione delle variabili
Forum - C/C++ - Problema .... :( Dichiarazione delle variabili

Avatar
gforce (Normal User)
Rookie


Messaggi: 33
Iscritto: 21/01/2010

Segnala al moderatore
Postato alle 22:07
Giovedì, 21/01/2010
Allora: in C le variabili vanno dichiarate int, char, float ... Guardate questo programma:

Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2. int main ()
  3. {
  4.        int c;
  5.        scanf("%d", & c);
  6.        return 0;
  7. }


Questo programma accetta soltanto numeri interi. Se dovessi inserire un valore con virgola es. 22.35 il programma esce immediatamente. Come posso fare per vedere quale valore viene inserito & quindi non devo provocare l'uscita forzata ???

Ultima modifica effettuata da gforce il 21/01/2010 alle 22:09


www.sys14.it <--- portale dedicato al linguaggio C / C++
PM Quote
Avatar
LittleHacker (Member)
Guru


Messaggi: 1033
Iscritto: 28/04/2009

Segnala al moderatore
Postato alle 22:17
Giovedì, 21/01/2010
Testo quotato

Postato originariamente da gforce:

Allora: in C le variabili vanno dichiarate int, char, float ... Guardate questo programma:

Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2. int main ()
  3. {
  4.        int c;
  5.        scanf("%d", & c);
  6.        return 0;
  7. }


Questo programma accetta soltanto numeri interi. Se dovessi inserire un valore con virgola es. 22.35 il programma esce immediatamente. Come posso fare per vedere quale valore viene inserito & quindi non devo provocare l'uscita forzata ???  



Devi inserire system("pause"); (se sei su windows)...:k:


Android User :)

MudStorm OS Source GitHub: https://github.com/Piso94/MudStorm-OS
PM Quote
Avatar
Lawliet (Normal User)
Expert


Messaggi: 386
Iscritto: 09/04/2009

Segnala al moderatore
Postato alle 22:18
Giovedì, 21/01/2010
Visto che sei nuovo ti consiglio di una buona lettura: http://www.pierotofy.it/pages/extras/forum/2/78115-leggere ...

Testo quotato

Postato originariamente da gforce:

Allora: in C le variabili vanno dichiarate int, char, float ... Guardate questo programma:

Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2. int main ()
  3. {
  4.        int c;
  5.        scanf("%d", & c);
  6.        return 0;
  7. }


Questo programma accetta soltanto numeri interi. Se dovessi inserire un valore con virgola es. 22.35 il programma esce immediatamente. Come posso fare per vedere quale valore viene inserito & quindi non devo provocare l'uscita forzata ???  



mentre per il tuo problema, spero che stai studiando queste cose da un buon libro.
Metti una printf("valore inserito: %d", c); per vedere il valore che hai inserito e poi system("pause"); ovviamente se sei su windows oppure una getc(); che ti servono per bloccare la schermata.
Togli lo spazio che c'è tra & e c, altra cosa se devi inserire i numeri con la virgola devi allora dichiarare le variabili di tipo float: float c, e poi quando prendi i valori nella scanf: scanf("%lf", &c);




Ultima modifica effettuata da Lawliet il 21/01/2010 alle 22:20


"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)
cit. theprogrammer
PM Quote
Avatar
Andrey (Normal User)
Rookie


Messaggi: 29
Iscritto: 06/10/2009

Segnala al moderatore
Postato alle 16:00
Venerdì, 22/01/2010
Testo quotato

Postato originariamente da gforce:
Questo programma accetta soltanto numeri interi. Se dovessi inserire un valore con virgola es. 22.35 il programma esce immediatamente.


Non è quello il motivo per il quale esce. Inserendo un numero con la virgola non accade nulla di particolare: semplicemente lo converte in int.

Il programma si chiude semplicemente perchè dopo aver preso il numero in input non ha nient'altro da fare [A parte restituire 0] :)

Ultima modifica effettuata da Andrey il 22/01/2010 alle 16:01


I computer sono incredibilmente veloci, accurati e stupidi. Gli uomini sono incredibilmente lenti, inaccurati e intelligenti. Insieme sono una potenza che supera l'immaginazione. - Cit. Albert Einstein.
PM Quote
Avatar
gforce (Normal User)
Rookie


Messaggi: 33
Iscritto: 21/01/2010

Segnala al moderatore
Postato alle 20:05
Domenica, 14/02/2010
ma io non dico il comando system("pause"); :_doubt:  Se io inserisco un variabile di tipo int, dovro inserire dati di tipo int, ma se io invece di inserire un int inserisco un char il programma se ne va a pezzi :-|


www.sys14.it <--- portale dedicato al linguaggio C / C++
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 14:44
Lunedì, 15/02/2010
Se vuoi prevedere l'inserimento di qualsiasi tipo di dato ed effettuare una validazione, allora devi usare una

stringa

e poi validarne e convertirne il contenuto.


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
gforce (Normal User)
Rookie


Messaggi: 33
Iscritto: 21/01/2010

Segnala al moderatore
Postato alle 20:12
Lunedì, 15/02/2010
un esempio ?


www.sys14.it <--- portale dedicato al linguaggio C / C++
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 20:54
Lunedì, 15/02/2010
Per l'input della stringa non penso ci siano problemi nè bisogno di esempi dato che devi usare la solita scanf con un vettore di char ...

Per la validazione, non si puo' fare un esempio generico perchè dipende da cosa ti aspetti di trovarci nella stringa ... Comunque, la fai usando tutte le funzioni della libreria standard per il trattamento delle stringhe ...


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote