gpt4 book ai didi

c++ - get() 和 peek() 有助于存储大量数据

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:57:09 27 4
gpt4 key购买 nike

我在使用 cin.peek() 和 cin.get() 函数时遇到问题。一般来说,输入总是让我望而却步。基本上,我试图使用 >> 的重载将一串数字(可以比 int 长,这就是它使用字符的原因)插入到 MyInt 对象中。我编写的 MyInt 类中有一个名为 myNumber 的动态字符数组。 resize 函数就是这样做的,将动态数组的大小调整为新的大小。

我需要做两件事

  1. 忽略前导空格
  2. 在下一个不是 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;
}

Main 正在调用这个:

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

我是一名学生,这是“家庭作业”。因此,与所有家庭作业一样,我得到了我无法访问的不合逻辑的东西。这是字符串类。这是工作中很小的一部分,但它就像我的眼中钉。

最佳答案

我会说在调试器中运行它并找出你弄乱数组的地方,我会猜测调整大小。

因为您的输入和输出遵循某种模式。

14445678954333
111111111111113

1123567888999H
11111111111119

你太长了,第一个和最后一个数字匹配。

关于c++ - get() 和 peek() 有助于存储大量数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8145964/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com