我正在做一個任務,我們必須創建一個「MyInt」類,它可以處理比常規整數大的數字。我們只需要處理非負數。我需要讓這個班的>>
操作員超載,但我正在努力做到這一點。C++ - 重載操作符>>和使用C風格的字符串處理輸入
我不允許#include <string>
。
有沒有辦法:
a。接受輸入爲C風格的字符串
b。通過它進行解析並檢查空格和非數字(即,如果提示符是c >> x >> y >> ch,並且用戶輸入1000 934H,則將該輸入接受爲兩個MyInt,然後是char)。
我假設它有事情做與peek()
和get()
,但我有麻煩搞清楚他們進來,
我寧願不知道究竟如何做到這一點!請指出我正確的方向。
這裏是我的構造函數,這樣你可以得到的類是什麼的想法(我也有一個轉換構造函數const char *
。
MyInt::MyInt (int n)
{
maxsize = 1;
for (int i = n; i > 9; i /= 10) {
// Divides the number by 10 to find the number of times it is divisible; that is the length
maxsize++;
}
intstring = new int[maxsize];
for (int j = (maxsize - 1); j >= 0; j--) {
// Copies the integer into an integer array by use of the modulus operator
intstring[j] = n % 10;
n = n/10;
}
}
謝謝!很抱歉,如果這個問題是含糊不清,我還是新如果我可以提供任何更多的信息,使問題更清楚
如何用'istream'的返回類型解析const char *'? – user1888527
@ user1888527我以爲你想採用'const char *'輸入,這就是爲什麼我關注它。我會稍後編輯我的答案,以便「istream」,此時此刻沒有時間抱歉。如果你想嘗試一下自己,這個原則基本上和C字符串一樣,但是使用istream接口。 –