это часть домашнего задания. Я не хочу, чтобы ответ просто помог. Я должен сделать класс с именем MyInt, который может хранить положительное целое число любого размера. Я могу использовать только библиотеки cstring cctype iomanip и iostream. Я действительно не понимаю даже, с чего начать.
6) Создать перегрузку оператора извлечения >> для чтения целых чисел из входного потока. Этот оператор должен игнорировать любой начальный пробел перед числом, затем читать последовательные цифры до тех пор, пока не встретится нецифровка (это так же, как >> для обычного int, поэтому мы хотим, чтобы наш работал так же). Этот оператор должен только извлекать и хранить цифры в объекте. «Первая нецифровка», встречающаяся после номера, может быть частью следующего ввода, поэтому не должна извлекаться. Вы можете предположить, что первым непробельным символом на входе будет цифра. т. е. вам не нужно проверять ошибки при вводе неподходящего типа (например, буквы), когда вы запрашиваете номер.
Пример: предположим, что выполняется следующий код, и введен ввод "12345 7894H".
MyInt x, y;
char ch;
cin >> x >> y >> ch;
Значение x должно теперь быть 12345, значение y должно быть 7894, а значение ch должно быть 'H'.
Последнее состояние моего кода выглядит следующим образом:
istream& operator>>(istream& s, MyInt& N){
N.Resize(5);
N.currentSize=1;
char c;
int i = 0;
s >> c;
N.DigitArray[i++] = C2I(c);
N.currentSize++;
c = s.peek();
while(C2I(c) != -1){
s >> c;
if(N.currentSize >= N.maxSize)
N.Resize(N.maxSize + 5);
N.DigitArray[i] = C2I(c);
i++;
N.currentSize++;
}
}
Это почти работает! Теперь он захватывает правильное число, но он не заканчивается, когда я нажимаю Enter, мне нужно ввести букву, чтобы закончить.