cin.peek()およびcin.get()関数に問題があります。一般的には、入力は常に私を逃す。基本的には、>>のオーバーロードを使用してMyIntオブジェクトに挿入する文字列を取得できるようにしようとしています。私が書いたMyIntクラスには、myNumberという動的なchar配列があります。 resize関数はそれだけで、動的配列を新しいサイズにリサイズします。私は二つのこと大きな数字を格納するget()およびpeek()ヘルプ
- を行う必要があり
は0-9でない次の文字で先頭の空白
- 停止を無視します。 (空白、文字)。ここ
は私が持っているものである:ここでは
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
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;
}
メインはちょうどこの呼んでいます
私は学生で、これは「宿題」です。すべての宿題と同様に、私はアクセスできない非論理的なものを与えられます。これは文字列クラスです。これは仕事のかなり小さな部分ですが、私の側にはそのような棘があります。
これは言及していませんでしたが、私はこの「宿題」にタグを付けました。すべての宿題と同様に、私はアクセスできない非論理的なものを与えられます。これは文字列クラスです。メインを編集します。 – jordaninternets