在主要功能中使用来自类的数组
Using array from class in main function
考虑以下代码:
#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.name[2]
。对于item.name[3]
,输入缓冲区为空,因此等待您的下一个输入。
相关文章:
- 如何实现删除数组的功能?
- 借助功能将 2D 转换为 1D 数组
- 将 2D 数组传递给大小为变量的功能
- 为什么必须动态分配扩展数组才能使此功能正常工作C++
- C++中用于结构的纯数组的类似于TableView/DataFrame的通用功能
- 共享_ptr中多功能数组的类型是什么
- 编写一个递归功能,该功能采用数组并以相反顺序显示元素,而无需在末尾启动数组的索引
- 如何正确填充并将动态数组发送到Delphi中C 中的功能
- 返回处理数组的INT功能
- exc_bad_access on for loop(数组功能指针)
- 如何将浮子数组阵列从Swift传递到C 功能
- 如何将搜索功能添加到数组中
- 可用于任何大小的数组的功能
- 在堆中创建功能指针的数组
- 使用指针在功能中的数组中添加/删除元素
- 创建一个C 模板功能,该功能将返回特定大小的std ::数组
- 二次代数建议数组等返回功能
- (C )创建可以从功能访问的动态全局数组/向量
- C 2D数组功能
- c++容器集+数组功能