gpt4 book ai didi

C++ getline 错误

转载 作者:行者123 更新时间:2023-11-28 05:31:23 24 4
gpt4 key购买 nike

我遇到了这个错误,我无法弄清楚:

no instance of overloaded function "getline" matches the argument list argument types are: (std::istream, MyEnum)

代码

enum MyEnum // Needs to be before the struct that uses it
{
Dog, Cat, Fish, Squirrel
};
struct MyStruct
{
int a;
float b;
string c;
MyEnum d;
};
int main()
{
char myCString[arraySize] = { 0 };
char myOtherCString[] = { "Yet another string" };
int myInt[4] = { 27, 39, 0, 42 };
string myString;
MyStruct aStruct = { 4, 3.5, "Dogs", Dog };
int x;
int * pX = &x;
array <MyStruct, arraySize> Animals;
// Storing values in uninitialized variables
myCString[0] = 'A';
myString = "A third string";
x = 4;
for (int i = 0; i < arraySize; i++)
{
Animals[i].a = rand() % 10;
Animals[i].b = rand() % 100 / 100.0;
Animals[i].c = MyEnum(rand() % 4);
cout << "Enter a name: ";
getline(cin, Animals[i].d);
}

最佳答案

您可能希望在 Animals[i].c 中获取输入,因为 cstring,而 d 不是。

此外,您可能想将 MyEnum(rand() % 4); 分配给 Animals[i].d

for (int i = 0; i < arraySize; i++)
{
Animals[i].a = rand() % 10;
Animals[i].b = rand() % 100 / 100.0;
Animals[i].c = MyEnum(rand() % 4);
// ^^^
// Change it to Animals[i].d
cout << "Enter a name: ";
getline(cin, Animals[i].d);
// ^^^
// Change it to Animals[i].c
}

这只是一种糟糕的命名风格,你应该为变量起一些有意义的名字,有了一些有意义的名字,你可能永远不会有这种错误。

关于C++ getline 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39439257/

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