C++ getline error
C++ getline error
我得到这个错误,我不能弄清楚:
没有重载函数"getline"的实例匹配参数列表参数类型为:(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
中获得输入,因为c
是string
,而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
}
这只是一个糟糕的命名风格,你应该为变量取一些有意义的名字,有了一些有意义的名字,你可能永远不会有这种错误。
相关文章:
- "error: no matching function for call to"构造函数错误
- Seg Fault Issue C++ (file IO / getline)
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 使用 LuaBridge 将 LuaJIT 绑定到C++会导致"PANIC: unprotected error"
- OpenMP卸载说'fatal error: could not find accel/nvptx-none/mkoffload'
- 当用户键入分隔符时,停止getline()输入
- C++错误:"error: int aaa::bbb is protected within this context"
- 尝试链接我的着色器时,我收到错误代码"error c5145 must write to gl_position"
- getline() 的原型/库是什么;
- 错误 没有与参数列表匹配的重载函数"getline"实例
- C++,在int数组中输入字符串或字符会输出0,而不是ascii或error
- 如何在 c++ 中使用 ',' 作为 getline 分隔符
- 错误:调用'getline'没有匹配函数
- 如何在 c++ 中使用 getline 从文件中读取字符串?
- 使用 cmake 的 LLVM 构建在 tsan_libdispatch_mac.cc 期间失败; "Error: conflicting types for ..."
- Error with getline
- C++ getline error
- getline() error
- Error with getline ifstream
- Error with std::getline