Oppure

Loading
21/01/10 21:07
gforce
Allora: in C le variabili vanno dichiarate int, char, float ... Guardate questo programma:

#include <stdio.h>
int main () 
{ 
       int c;
       scanf("%d", & c);
       return 0;
}
 

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 21/01/10 21:09
aaa
21/01/10 21:17
LittleHacker
Postato originariamente da gforce:

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

#include <stdio.h>
int main () 
{ 
       int c;
       scanf("%d", & c);
       return 0;
}
 

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:
aaa
21/01/10 21:18
Lawliet
Visto che sei nuovo ti consiglio di una buona lettura: pierotofy.it/pages/extras/forum/2/78115-leggere_prima_di_postare_est_regolamento/

Postato originariamente da gforce:

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

#include <stdio.h>
int main () 
{ 
       int c;
       scanf("%d", & c);
       return 0;
}
 

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 21/01/10 21:20
aaa
22/01/10 15:00
Andrey
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 22/01/10 15:01
aaa
14/02/10 19:05
gforce
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 :-|
aaa
15/02/10 13:44
nessuno
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 ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
15/02/10 19:12
gforce
un esempio ?
aaa
15/02/10 19:54
nessuno
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 ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.