PDA

Visualizza la versione completa : C++ problema using e altro


Jacki93
14-06-2008, 18:41
ciao, sto seguendo un libro per imparare c++ e adesso vorrei provare a fare qualcosina con i primi capitoli che ho letto...
ho scritto questo codice che dovrebbe chiedere un tipo di cacolo (+,-,/...) e due numeri per fare ad esempio 2 + 1 = 3, il codice per fare questo usa una classe... il problema che mi da errore nella compilazione quando uso using:cout e gli altri...


#include <iostrem>
using std::cout;
using std::cin;
using std::endl;

#include <string>
using std::string;
using std::getline;

class calcolo
{
public:
void usa(string tipo_segno, int numero1, int numero2)
{
int risultato;
if (tipo_segno == "+") {
risultato = numero1 + numero2;
}
cout << numero1 << tipo_segno << numero2 << " = " << risultato << endl;
}
}

int main()
{
string tipo;
int numero1;
int numero2;

calcolo mioCalcolo;

cout << "Inserisci tipo di calcolo: " << endl;
getline(cin, tipo);
cout << "Inserisci il primo numero: " << endl1;
cin >> numero1;
cout << "Inserisci il secondo numero: " << endl;
cin >> numero2;

mioCalcolo.usa(tipo);

system("PAUSE");
return 0;
}



penso che ci siano molte cose sbagliate ed oltre a questo un allungamento inutile, cmq dovrebbe uscire qualcosa di simile:

Inserisci tipo di calcolo: +
Inserisci il primo numero: 2
Inserisci il secondo numero: 1
2 + 1 = 3

il problema che nn funziona... sono agli inizi percio nn insultatemi troppo :bh: ciao e grazie...

shodan
14-06-2008, 18:54
Dire che non funziona non serve a niente, se non posti anche gli errori del compilatore.
Comunque due cose saltano all'occhio:
la prima che devi includere iostream, non iostrem :) (errore di battitura spero)

la seconda che la funzione usa prende tre parametri e tu ne passi uno solo.

oregon
14-06-2008, 19:02
E poi manca il ; alla fine della dichiarazione della classe e hai scritto endl1 invece di endl

D'accordo che sei all'inizio, ma sono tutti errori di "distrazione" e la distrazione non va affatto d'accordo con la programmazione ...

Jacki93
14-06-2008, 20:13
Ok, sistemato, grazie mille:


#include <iostream>
using std::cout;
using std::cin;
using std::endl;

#include <string>
using std::string;
using std::getline;

class calcolo
{
public:
void usa(string tipo_segno, int numero1, int numero2)
{
int risultato;
if (tipo_segno == "+") {
risultato = numero1 + numero2;
}
if (tipo_segno == "-") {
risultato = numero1 - numero2;
}
if (tipo_segno == "/") {
risultato = numero1 / numero2;
}
if (tipo_segno == "*") {
risultato = numero1 * numero2;
}
cout << numero1 << tipo_segno << numero2 << " = " << risultato << endl;
}
};

int main()
{
string tipo;
int numero1;
int numero2;

calcolo mioCalcolo;

cout << "Inserisci tipo di calcolo (+, -, /, *): " << endl;
getline(cin, tipo);
cout << "Inserisci il primo numero: " << endl;
cin >> numero1;
cout << "Inserisci il secondo numero: " << endl;
cin >> numero2;

mioCalcolo.usa(tipo, numero1, numero2);

system("PAUSE");
return 0;
}


Un'altra cosa, per rcevere i riusltati con il numero dopo la virgola, cosa uso al posto di INT? poi, come potrei riuscire a verificare che getline(cin, tipo); uguale a +,-,/ o * e se nn uguale a uno di questi annullare e farne sceglierne uno? Spero mi abbiate capito, ciao e ancora grazie...

MItaly
14-06-2008, 21:27
Originariamente inviato da Jacki93
Un'altra cosa, per rcevere i riusltati con il numero dopo la virgola, cosa uso al posto di INT?
float o double.

poi, come potrei riuscire a verificare che getline(cin, tipo); uguale a +,-,/ o * e se nn uguale a uno di questi annullare e farne sceglierne uno? Spero mi abbiate capito, ciao e ancora grazie...


if (tipo_segno == "+") {
risultato = numero1 + numero2;
}
else if (tipo_segno == "-") {
risultato = numero1 - numero2;
}
else if (tipo_segno == "/") {
risultato = numero1 / numero2;
}
else if (tipo_segno == "*") {
risultato = numero1 * numero2;
}
else {
cout<<"Tipo di calcolo non valido"<<endl;
return;
}

Loading