Torna indietro   Hardware Upgrade Forum > Software > Programmazione

HONOR CHOICE Projector Air Pro: piccolo, portatile e con Netflix
HONOR CHOICE Projector Air Pro: piccolo, portatile e con Netflix
Un proiettore economico, che fa della portabilità e immediatezza i suoi punti di forza. Adatto per una camera da letto o per la casa vacanze, è basato su sistema proprietario Linux ma offre piena compatibilità ufficiale a Netflix
ASUS ProArt GoPro Edition è il notebook compatto per chi crea
ASUS ProArt GoPro Edition è il notebook compatto per chi crea
Un notebook sviluppato in collaborazione con GoPro ma che risponde al meglio alle necessità di tutti coloro che creano contenuti video: robustezza, design, potenza di calcolo e funzionalità si abbinano al meglio tra di loro, pur se a prezzo di un costo elevato per via della tanta memoria onboard
Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090
Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090
Ho affidato ai due modelli lo stesso mestiere ma non lo stesso identico prompt: trasformare una storia illustrata in un video usando una RTX 3090 e modelli locali. Ne sono usciti due film, due applicazioni e due idee opposte di efficienza. Fucina, progettata con Fable 5, colpisce di più nei primi secondi. Storyboard Studio, costruito con ChatGPT/Codex, regge meglio sulla distanza e vince il confronto complessivo, ma di stretta misura
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 22-11-2003, 17:12   #1
dottorkame
Senior Member
 
Iscritto dal: Jan 2003
Città: Monza
Messaggi: 769
[ c ] Problemino facile facile

Ciao a tutti premetto che ho da poco cominciato a prog. in c, quindi non mi insultate per questo mio prob.

ho creato questo semplice prog:

-----------------------------------------------------------------------------------

#include <stdio.h>

int num1, num2;
char op;
main ()
{ printf ("inserisci il primo numero \n");
scanf("%d", &num1);
printf ("inserisci l' operatore \n");
op = getchar();
printf ("inserisci il secondo numero \n");
scanf("%d", &num2);

if ( op == '+' ) printf(" La somma dei 2 numeri e'", num1 + num2 );
if ( op == '-' ) printf(" La differenza dei 2 numeri e'", num1 - num2 );
if ( op == '*' ) printf(" il prodotto dei 2 numeri e'", num1 * num2 );
if ( op == '/' ) printf(" La somma dei 2 numeri e'", num1 / num2 );
}

_____________________________________________________

Quando compila non mi da errori, quando lo eseguo

stampa
inserisco il primo numero
stampa
non mi fa inserire l' operatore e stampa subito il messaggio dopo
inserisco il secondo numero ed esce.

Mi spiegate dove sta l' errore? grazie
dottorkame è offline   Rispondi citando il messaggio o parte di esso
Old 22-11-2003, 17:56   #2
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Sostituisci getchar con scanf("%c", &op);
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 22-11-2003, 18:48   #3
dottorkame
Senior Member
 
Iscritto dal: Jan 2003
Città: Monza
Messaggi: 769
non funziona ho gia provato
dottorkame è offline   Rispondi citando il messaggio o parte di esso
Old 22-11-2003, 19:23   #4
bizzu
Senior Member
 
L'Avatar di bizzu
 
Iscritto dal: May 2003
Città: Rimini
Messaggi: 2279
Cosa succede quando usi lo scanf? Ti da lo stesso problema di prima o qualcos'altro?
__________________
Gigabyte 965P-DS3 ¤ E6600@400*8 ¤ Scythe Ninja Plus Rev.B ¤ Ram 4GB ¤ HD SSD Crucial M4 128GB
Gainward 4850 Golden Sample ¤ Antec NEO 550HE ¤ CM Centurion 534 ¤ Dell Ultrasharp U2312HM
Notebook Asus N551JW ¤ i7-4750HQ ¤ nVidia 960M 4GB ¤ 16GB DDR3 ¤ SSD Intel 850EVO 500GB
bizzu è offline   Rispondi citando il messaggio o parte di esso
Old 22-11-2003, 19:51   #5
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Prova così:
Codice:
#include <stdio.h> 

int num1, num2; 
char op; 
main () 
{ printf ("inserisci il primo numero \n"); 
scanf("%d", &num1); 
printf ("inserisci l' operatore \n"); 
fflush(stdin);
scanf("%c", &op); 
printf ("inserisci il secondo numero \n"); 
scanf("%d", &num2); 

if ( op == '+' ) printf(" La somma dei 2 numeri e'", num1 + num2 ); 
if ( op == '-' ) printf(" La differenza dei 2 numeri e'", num1 - num2 ); 
if ( op == '*' ) printf(" il prodotto dei 2 numeri e'", num1 * num2 ); 
if ( op == '/' ) printf(" La somma dei 2 numeri e'", num1 / num2 ); 
}
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 22-11-2003, 21:37   #6
dottorkame
Senior Member
 
Iscritto dal: Jan 2003
Città: Monza
Messaggi: 769
Funziona!
mi puoi dire qual' era il prob?
dottorkame è offline   Rispondi citando il messaggio o parte di esso
Old 22-11-2003, 23:51   #7
SirKhaas
Senior Member
 
L'Avatar di SirKhaas
 
Iscritto dal: May 2003
Città: Mantova
Messaggi: 303
Mi permetto di inserirmi e rispondere io...

Dopo le operazioni di lettura spesso restano dei caratteri, come l'invio, nel buffer di lettura, e se questo non viene pulito, come con la fflush proposta o con altre funzioni, vengono lette dall'istruzione di lettura successiva...
Probabilmente la tua scanf("%c") o getchar() leggeva l'invio premuto per inserire il primo numero...

Io a scuola x evitare problemi la pulizia del buffer la faccio sempre, dopo ogni lettura, anche se non ce ne sono di immediatamente successive...
SirKhaas è offline   Rispondi citando il messaggio o parte di esso
Old 23-11-2003, 14:57   #8
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Sì...Il fatto è che per getchar e scanf con %c lo \n che rimane nel buffer di input è un carattere valido...mentre per la scanf fatta con altri formati lo \n non è un carattere valido...

fflush pulisce lo standard input...
cionci è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


HONOR CHOICE Projector Air Pro: piccolo, portatile e con Netflix HONOR CHOICE Projector Air Pro: piccolo, portati...
ASUS ProArt GoPro Edition è il notebook compatto per chi crea ASUS ProArt GoPro Edition è il notebook c...
Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090 Fable e Sol a confronto: due cartoni animati cre...
Il tablet rugged leggero e sottile: Lenovo ThinkTab X11 offre resistenza, doppia USB-C e batteria rimovibile Il tablet rugged leggero e sottile: Lenovo Think...
AMD Advancing AI 2026: l'hardware AMD per le elaborazioni IA del futuro, tra GPU, CPU e robot AMD Advancing AI 2026: l'hardware AMD per le ela...
10 milioni di auto prodotte, ma il vero ...
ECOVACS T50 PRO OMNI Gen3 in offerta a 3...
Il router più economico della rete oggi ...
Chrome verso i due aggiornamenti a setti...
Microsoft travolta dai bug scoperti dall...
Aspirabriciole da 25.000Pa in offerta, m...
Microsoft riscrive il tasto destro di Wi...
Crisi memorie, crollo per i chip smartph...
Addio foto 'spia': la funzione degli occ...
Google Earth trasforma qualsiasi luogo c...
Amazon brucia 1,8 milioni con Claude per...
Tornano in offerta su Amazon 3 SUP / pad...
Stangata in arrivo per il Galaxy S26 FE:...
Compri un pieghevole? Dopo un anno vale ...
Voli aerei e algoritmi: l'IA gestisce i ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 08:57.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v