Вот мой код для моего оператора >> перегрузка. Предполагается, что они будут принимать цифры до точки с запятой и помещать их в bigint.Оператор Bigint >> перегрузка
std::istream& operator>>(std::istream& is, bigint& bi) {
int i = 0;
char ch;
char temp[SIZE];
// grabs the first character in the file
is >> ch;
temp[i] = ch;
++i;
// while loop grabs the rest of the characters
// up to the semicolon
while(ch != ';') {
is >> ch;
temp[i] = ch;
++i;
}
// temp is stored in the bigint ref
bi = bigint(temp);
return is;
}
Проблема, с которой я сталкиваюсь, заключается в том, что когда я запускаю ее, она дает мне дополнительный выход. Например: когда я набираю «34;» как входной, итоговый bigint будет «3411». Может ли кто-нибудь сказать мне, что я делаю неправильно?
[SSCCE] (http://sscce.org) поможет. – chris