Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 09-01-2004, 15:21   #1
xegros
Senior Member
 
L'Avatar di xegros
 
Iscritto dal: Jun 2003
Città: ...Just Pure Energy...
Messaggi: 1134
Suggerimento C++

Codice:
#include <iostream.h>
using namespace std;

int main()
{
 int liters, gallons;


 cout<<"inserisci il numero dei galloni: ";
 cin>>gallons;
 cin.get();

 liters = gallons * 4;

 cout<<"Liters: "<<liters;
 cin.get();

 return 0;
}
Facendo cosi, sono costretto scrivere cin.get() 2 volte, non c'è un'alternativa.
Magari posizionarlo in qualche posizione strategica. altrimenti non posso "leggere" il programma.
__________________
"The pure and simple truth
is rarely pure and never simple"
xegros è offline   Rispondi citando il messaggio o parte di esso
Old 09-01-2004, 17:52   #2
/\/\@®¢Ø
Bannato
 
L'Avatar di /\/\@®¢Ø
 
Iscritto dal: Jul 2000
Città: Malo (VI)
Messaggi: 1000
L'output di cout e bufferizzato, se vuoi vedere il risultato devi chiamare una flush() sul canale o in alternativa, spedisci un endl che oltre a andaer a capo fa il "flush" automaticamente.
Una cin.get() funziona perche' i due canali sono collegati e una chiamata a cin fa svuotare automaticamente il cout.
Sempreche' non ci sia di mezzo anche un compilatore vecchio e imperfetto (*cough*VC6*cough*) ad aggiungere bugs.
[code]
#include <iostream> // Niente .h !!!
using namespace std;

int main()
{
int liters, gallons;


cout<<"inserisci il numero dei galloni: ";
cout.flush();
cin>>gallons;

liters = gallons * 4;

cout<<"Liters: "<<liters;
cout.flush();
return 0;
}
/\/\@®¢Ø è offline   Rispondi citando il messaggio o parte di esso
Old 09-01-2004, 18:21   #3
xegros
Senior Member
 
L'Avatar di xegros
 
Iscritto dal: Jun 2003
Città: ...Just Pure Energy...
Messaggi: 1134
ma se metto #include <stdlib>, potrei anche fare a meno di inserire namespace std? dato che la libreria in questione include anche quest'ultimo elemento?.

inoltre dato che siamo in tema, a che serve il comando void
e quando c'èè bisogno di usarlo.
(senza usare termini fantascientifici).
__________________
"The pure and simple truth
is rarely pure and never simple"
xegros è offline   Rispondi citando il messaggio o parte di esso
Old 09-01-2004, 18:57   #4
/\/\@®¢Ø
Bannato
 
L'Avatar di /\/\@®¢Ø
 
Iscritto dal: Jul 2000
Città: Malo (VI)
Messaggi: 1000
No, il namespace std e l'intestazione stdlib non sono affatto correlate.
stdlib si riferisce alla libreria standard del C, mentre il namespace std e' una cosa relativa solo al C++.

Il significato del void dipende un po' dal contesto, ma sostanzialmente e' una parola chiave che vuol dire che "non c'e' un tipo".
Ad esempio quando dichiaro una funzione che non ritorna valori, scrivo qualcosa di simile al seguente:

Codice:
void foo(int c);
(potrebbe sembrare piu' ragionevole evitare del tutto di indicare il tipo di ritorno, ma storicamente nel C una funzione dichiarata senza tipo di ritorno era una funzione che ritornava un intero)

In alternativa potresti trovare una dichiarazione di funzione C del tipo
Codice:
int foo(void);
che e' un modo per indicare che la funzione non ha parametri. Nel C++ la dichiari semplicemente
Codice:
int foo();
Infine puoi trovare un "puntatore a void", che indica che stai trattando memoria grezza, non riferita ad un tipo particolare. L'esempio classico e' la funzione C malloc che alloca la memoria richiesta e ritorna un puntatore ad una zona di memoria non inizializzata.

spero di averti chiarito le idee
/\/\@®¢Ø è offline   Rispondi citando il messaggio o parte di esso
Old 09-01-2004, 19:38   #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
Se non sbaglio le librerie C senza il ".h" sono equivalenti alle altre, ma importate nel namespace std...
Quindi #include <stdlib.h> diventa:

#include <cstdlib>
using namespace std;

sempre che si voglia avere visibili tutte le funzioni di stdlib...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 09-01-2004, 21:09   #6
xegros
Senior Member
 
L'Avatar di xegros
 
Iscritto dal: Jun 2003
Città: ...Just Pure Energy...
Messaggi: 1134
Potreste dirmi, che cos'è che non va nel mio codice.
Parte (0 errori), ma al posto dei caratteri "finali"(cioè quelli che dovrebbe rilevare dalla tastiera) visualizza le "p". e " "(il vuoto)

Codice:
#include <iostream.h>
#include <stdio.h>

int main()
{

char carattere;
char numero;

printf("inserisci un carattere, e poi premi INVIO: ");
scanf("%c",& carattere);
printf("inserisci un numero: ");
scanf("%d",&numero);
printf("il carattere da te digitato è :%c\n",carattere);
printf("il numero da te inserito è : %d\n",numero);
cin.get();
cin.get();

return 0;
}
__________________
"The pure and simple truth
is rarely pure and never simple"
xegros è offline   Rispondi citando il messaggio o parte di esso
Old 09-01-2004, 21:39   #7
maxithron
Senior Member
 
L'Avatar di maxithron
 
Iscritto dal: Mar 2002
Città: Italy/Usa
Messaggi: 2817
Che compilatore stai usando?
__________________
"Utilizzando atomi pentavalenti drogheremo il silicio di tipo n;
Utilizzando atomi trivalenti drogheremo il silicio di tipo p;
Utilizzando della cannabis ci drogheremo noi e vedremo il silicio fare cose impossibili" - DSDT-HowTo
maxithron è offline   Rispondi citando il messaggio o parte di esso
Old 10-01-2004, 07:23   #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
Però stai usando cin solo per la get()...usalo anche per l'input...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 10-01-2004, 13:15   #9
xegros
Senior Member
 
L'Avatar di xegros
 
Iscritto dal: Jun 2003
Città: ...Just Pure Energy...
Messaggi: 1134
uso Devcpp4

ho provato anche con cin e cout, ma è risulatato ancora peggio.
in pratica, immetto il carattere e il numero, e quando schiaccio INVIO, miappare solo il numero (senza i 2 cout, e il carattere) spostato un pò a destra.
__________________
"The pure and simple truth
is rarely pure and never simple"
xegros è offline   Rispondi citando il messaggio o parte di esso
Old 10-01-2004, 13:15   #10
xegros
Senior Member
 
L'Avatar di xegros
 
Iscritto dal: Jun 2003
Città: ...Just Pure Energy...
Messaggi: 1134
ma a che serve mettere int davanti a main. Tanto, quest'ultimo non è mica un numero. Illuminatemi.
__________________
"The pure and simple truth
is rarely pure and never simple"
xegros è offline   Rispondi citando il messaggio o parte di esso
Old 10-01-2004, 21:13   #11
pinzi
Member
 
L'Avatar di pinzi
 
Iscritto dal: Oct 2003
Città: Umbertide
Messaggi: 180
è solo una questione stilistica. In pratica tu potresti usare anche void main ma il compilatore ti direbbe che questa scrittura non è molto elegante. Invece è preferita la notazione con int main e return 0 (in pratica la funzione main da sempre in uscita il numero zero che è il codice di una funzione che è stata eseguita correttamente).
pinzi è offline   Rispondi citando il messaggio o parte di esso
Old 10-01-2004, 21:28   #12
/\/\@®¢Ø
Bannato
 
L'Avatar di /\/\@®¢Ø
 
Iscritto dal: Jul 2000
Città: Malo (VI)
Messaggi: 1000
Quote:
Originariamente inviato da xegros
ma a che serve mettere int davanti a main. Tanto, quest'ultimo non è mica un numero. Illuminatemi.
In realta' lo standard ora prevede che il main debba ritornare un intero (che e' poi il valore di ritorno dell'eseguibile), mentre una volta era facoltativo. Come caso particolare se non viene specificato un return viene ritornato 0, ma non ne sono sicuro, fai una prova.
/\/\@®¢Ø è offline   Rispondi citando il messaggio o parte di esso
Old 10-01-2004, 21:34   #13
xybercom
Senior Member
 
L'Avatar di xybercom
 
Iscritto dal: Dec 2000
Città: dintorni di Seregno (MI)
Messaggi: 312
La notazione penso sia presa da Unix, se un programma viene eseguito senza errori dà il valore 0 alla shell, un valore diverso da 0 indica un errore.

il programma funziona (con g++ sotto linux) ma devi dichiarare numero come un int oppure cambiare il parametro di formato (d si riferisce a un intero). Così come l'hai scritto tu invece mi dà problemi.
In ogni caso stai mischiando funzioni di input di C e di C++ , il che non è sensato penso.
__________________
powered by GNU/Linux [ Debian Sid ]
xybercom è offline   Rispondi citando il messaggio o parte di esso
Old 10-01-2004, 21:42   #14
xybercom
Senior Member
 
L'Avatar di xybercom
 
Iscritto dal: Dec 2000
Città: dintorni di Seregno (MI)
Messaggi: 312
La versione C++ "sistemata" (e a prova di warning :-) ) sarebbe :

#include <iostream>
#include <cstdio>

using namespace std;

int main()
{
char carattere;
int numero;

cout << "\ninserisci un carattere, e poi premi INVIO: ";
cout.flush();
cin >> carattere;

cout << "\ninserisci un numero: ";
cout.flush();
cin >> numero;

cout << "\nil carattere da te digitato e' : " << carattere;

cout << "\nil numero da te inserito e' : " << numero << endl;

return 0;
}
__________________
powered by GNU/Linux [ Debian Sid ]
xybercom è offline   Rispondi citando il messaggio o parte di esso
Old 11-01-2004, 18:23   #15
xegros
Senior Member
 
L'Avatar di xegros
 
Iscritto dal: Jun 2003
Città: ...Just Pure Energy...
Messaggi: 1134
vi ringrazio delle risposte che mi avete saputo dare.

p.s. a cosa serve "endl" (end line)?
__________________
"The pure and simple truth
is rarely pure and never simple"
xegros è offline   Rispondi citando il messaggio o parte di esso
Old 11-01-2004, 18:47   #16
xybercom
Senior Member
 
L'Avatar di xybercom
 
Iscritto dal: Dec 2000
Città: dintorni di Seregno (MI)
Messaggi: 312
endl =>
Quote:
Originariamente inviato da /\/\@®¢Ø
L'output di cout è bufferizzato, se vuoi vedere il risultato devi chiamare una flush() sul canale o in alternativa, spedisci un endl che oltre a andare a capo fa il "flush" automaticamente.
__________________
powered by GNU/Linux [ Debian Sid ]
xybercom è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
Bonus colonnine 2026: dal 22 settembre d...
Revolut, una cartella "Italy" ...
Le auto connesse possono vendere i tuoi ...
E se i computer elaborassero le informaz...
NVIDIA non ci sta: "Non lasceremo che l'...
Gli Stati Uniti hanno armi in orbita: ar...
Robot aspirapolvere in offerta su Amazon...
ChatGPT inventa testimoni falsi e un avv...
Find X10 Pro Max di OPPO arriverà...
L'IA scriverà codice migliore del suo st...
Valve apre le prenotazioni di Steam Fram...
ECOVACS T50 OMNI Gen3 a 379€: il riferim...
Netflix e Sega insieme: arrivano i film ...
Veeam ottiene la certificazione da parte...
XIAOMI Redmi Buds 8 a 37,94€: auricolari...
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:11.


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