我遇到了cin.peek()和cin.get()函數的問題。一般的輸入總是讓我無法迴避。基本上,我試圖能夠獲得一串數字(可以比int長,這就是爲什麼它使用字符)插入MyInt對象使用重載>>。我寫的MyInt類有一個名爲myNumber的動態char數組。 resize函數就是這樣做的,將動態數組的大小調整爲新的大小。get()和peek()幫助存儲大量數
我需要做兩件事情
- 忽略前導空格下一個字符不是0-9
- 停止。 (空格,字母)
以下是我有:
istream& operator>> (istream& s, MyInt& n)
// Overload for the input operator
{
char c; // For peeking
int x;
MyInt input; // For storing
unsigned int counter = 0; // counts # of stored digits
while (isspace(s.peek()))
{
c = s.get();
}
while (C2I(s.peek()) != -1)
{
x = C2I(s.get());
input.myNumber[counter] = I2C(x);
counter++;
input.Resize(counter);
}
cout << "WHAH WHAH WEE WAH\n";
n = input;
}
主要是調用只是這樣的:
cout << "Enter first number: ";
cin >> x;
cout << "Enter second number: ";
cin >> y;
cout << "You entered:\n";
cout << " x = " << x << '\n';
cout << " y = " << y << '\n';
這裏是一個輸出我:
Enter first number: 14445678954333
WHAH WHAH WEE WAH
Enter second number: 1123567888999H
WHAH WHAH WEE WAH
You entered:
x = 111111111111113
y = 11111111111119
我是一名學生,這是'家庭作業'。就像所有的家庭作業一樣,我接受了我無法訪問的不合邏輯的東西。這一個是字符串類。這是工作中相當小的一部分,但它就像我身邊的一根刺。
沒有提到它,但我沒有標記這個'家庭作業'。就像所有的家庭作業一樣,我接受了我無法訪問的不合邏輯的東西。這一個是字符串類。我將編輯主要。 – jordaninternets