gpt4 book ai didi

c++ - 在主函数中使用类中的数组

转载 作者:行者123 更新时间:2023-11-30 02:26:54 28 4
gpt4 key购买 nike

考虑以下代码:

#include <iostream>
#include <string>
#include <algorithm>

int main()
{
class treasure
{
public:
char name[100];
double value[100];
double weight[100];
};

int itemNumber, totalWeight, i;

treasure item;

std::cout << "Enter total item weight: " << std::endl;
std::cin >> totalWeight;
std::cout << "Enter total item number: " << std::endl;
std::cin >> itemNumber;
for( i = 0; i < itemNumber; i++)
{
std::cout << "Enter item name: " << std::endl;
std::cin >> item.name[i];
}

return 0;
}

我想在数组中输入 5 项,但它只要求输入两项。它首先接受一个项目,然后在打印三行后再次接受另一个输入。好像是什么问题。哪里出了问题?

最佳答案

char name[100]; 表示您最多可以保存 100 个 char 类型的项目,而不是 100 个字符串。

这里的一个重要影响是您的输入被缓冲。 std::cin >> item.name[i]; 从输入缓冲区中取出一个 char 并将其写入 name[i]。您输入的其余部分保留在缓冲区中,并将用于下一次执行 cin,即下一次执行同一代码行。

因此,如果您输入例如'abc' 它将 'a' 保存到 item.name[0],将 'b' 保存到 item.name[1] 并将 'c' 保存到 item。名称[2]。对于 item.name[3],输入缓冲区为空,因此它等待您的下一个输入。

关于c++ - 在主函数中使用类中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42271168/

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