Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora
WF-1000X M6 è la sesta generazione di auricolare in-ear sviluppata da Sony, un prodotto che punta a coniugare facilità di utilizzo con una elevata qualità di riproduzione dei contenuti audio e una cura nella riduzione del rumore ambientale che sia da riferimento
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake ha presentato diverse novità per la sua piattaforma legate all'intelligenza artificiale. Quella forse più eclatante è una collaborazione con OpenAI, ma non mancano diverse nuove funzionalità che rendono la piattaforma più flessibile e in grado di rispondere meglio alle esigenze in continuo cambiamento delle aziende
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Con velocità teoriche fino a 11 Gbps, gestione tramite app intelligente e protezione avanzata dei dispositivi, Roamii BE Pro porta il Wi‑Fi 7 tri‑band nelle abitazioni più esigenti. Un sistema Wi-Fi Mesh proposto da MSI allo scopo di garantire agli utenti una rete fluida e continua capace di sostenere streaming 8K, gaming competitivo e le applicazioni moderne più esigenti in termini di banda
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 22-11-2003, 18: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, 18: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, 19: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, 20: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, 20: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, 22: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 23-11-2003, 00: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, 15: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


Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora Sony WF-1000X M6: le cuffie in-ear di riferiment...
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI Snowflake porta l'IA dove sono i dati, anche gra...
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo M...
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi Recensione HUAWEI Mate X7: un foldable ottimo, m...
Nioh 3: souls-like punitivo e Action RPG Nioh 3: souls-like punitivo e Action RPG
Il nuovo Xiaomi Watch 5 è pronto ...
Steam Deck è out of stock in dive...
Le migliori offerte Amazon del weekend, ...
PC più potente, meno spesa: su Amazon ta...
Amazon Haul: come fare acquisti 'pazzi' ...
Threads permetterà agli utenti di...
Monitor gaming in offerta su Amazon: 180...
Samsung vuole riconquistare la leadershi...
L'app di YouTube per Apple Vision Pro &e...
Fastweb + Vodafone: clienti e ricavi in ...
Artemis II: nuovo test prima del Wet Dre...
GTA 6 gratis se nasce un figlio il giorn...
Quasi la metà degli smartphone at...
DDR5 a 16 dollari al gigabyte: Framework...
Meno di 3kg per 'diventare' bionici: l'u...
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: 13:15.


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