#include<iostream>;
int main()
{
int a = 1;
int b = 2;
std::cin >> a >> b;
std::cout << a << "+" << b << "=" << a+b << std::endl;
return 0;
}
wenn ich eingeben 3 4
als Eingabe, wird der Ausgang 3+4=7
sein, na ja, es ist seltsam; Aber wenn ich a b
eingeben, ist der Ausgang 0+0=0
(Warum ist es 0 und 0?); Die meisten verwirrend, a 4
, wird es 0+0=0
sein (Warum nicht '0 + 4 = 4' ?????); Dann schreibe ich ein anderes prog.Was ist cin tun, wenn es ein Fehler
#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;
}
Wenn ich a 4
eingeben, warum ist es 0+0=0
noch? Sollte es nicht 0+4=4
sein?
Danke an alle warmherzigen !!
Ich schreibe Prog3, um zu testen, was passieren wird, wenn ich nicht schreibe 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;
}
Wenn a b
wieder, es gibt 0+-1218170892=-1218170892
(Warum nicht 0+0=0
ist ??)
der Eingang Es wird erwartet, dass es sich um eine Ganzzahl und nicht um ein Zeichen handelt. Die Eingabe von "a", "3.141" oder "was auch immer" ist einfach nicht gültig. Wenn Ihre Eingabe "a" ist, weiß das Programm nicht, dass Sie "a" als Variable verwendet haben und stattdessen den Standardwert verwenden möchten. – stefan
Es ist offensichtlich, dass es C++ 11 ist, weil sonst die Werte 1 und 2 wären, nicht 0. – Drise
Um Ihre Bearbeitung zu beantworten: Sie haben kein von der Eingabe entfernt. Du brauchst 'cin.clear(); cin.ignore (1); ', damit die zweite Extraktion erfolgreich ist. – Drise