這是作業分配的一部分。我不想要一個答案只是幫助。我必須創建一個名爲MyInt的類,它可以存儲任何大小的正整數。我只能使用cstring cctype iomanip和iostream庫。我真的不明白,即使從哪裏開始。覆蓋>>像int這樣的運算符
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++;
}
}
它幾乎作品!現在它抓住了正確的號碼,但當我輸入時它並沒有結束,我必須輸入一個字母才能結束。
http://stackoverflow.com/questions/9833112/bigint-implementation-converting-a-string-to-binary-representatio-stored-as-un/9833145#9833145 – 2012-03-25 02:06:49