#include<iostream>;
int main()
{
int a = 1;
int b = 2;
std::cin >> a >> b;
std::cout << a << "+" << b << "=" << a+b << std::endl;
return 0;
}
quando entro 3 4
come ingresso, l'uscita sarà 3+4=7
, beh, è strano; Ma quando inserisco a b
, l'output è 0+0=0
(Perché è 0 e 0?); Il più confuso, a 4
, sarà 0+0=0
(Perché non '0 + 4 = 4' ?????); Poi scrivo un altro prog.Che cosa significa cin fare quando si verifica un errore
#include<iostream>;
int main()
{
int a = 1;
int b = 2;
std::cin >> a;
std::cin.clear();
std::cin >> b;
std::cout << a << "+" << b << "=" << a+b << std::endl;
return 0;
}
quando entro a 4
, perché è ancora 0+0=0
? Non dovrebbe essere 0+4=4
?
Grazie a tutti gli spensierati !!
Scrivo prog3, per testare cosa accadrà quando non scrivo int a=1;int b=2
;
2
#include <iostream>
using namespace std;
int main()
{
int a,b;
cin >> a ;
cin >> b;
cout<< a << "+"<< b <<"="<< a+b << endl;
return 0;
}
Quando a b
nuovamente, essa stampa 0+-1218170892=-1218170892
(Perché non è 0+0=0
??)
all'ingresso dovrebbe essere un numero intero, non un personaggio. Inserire "a", "3.141" o "qualunque" semplicemente non è valido. Se il tuo input è "a", il programma non sa che hai usato "a" come variabile e che invece vuoi usare il valore predefinito. – stefan
È ovvio che sia C++ 11, perché altrimenti i valori sarebbero 1 e 2, non 0. – Drise
Per rispondere alla modifica: non è stata rimossa una dall'input. Hai bisogno di 'cin.clear(); cin.ignore (1); ', in modo che la seconda estrazione abbia successo. – Drise