gpt4 book ai didi

c++ - enum 类型不能接受 cin 命令

转载 作者:太空狗 更新时间:2023-10-29 19:53:53 24 4
gpt4 key购买 nike

请看这段代码:

#include <iostream>
using namespace std;
int main()
{

enum object {s,k,g};
object o,t;

cout << "Player One: "; cin >> o;
cout << "Player Two: "; cin >> t;

if (o==s && t==g) cout << "The Winner is Player One.\n";
else if (o==k && t==s) cout << "The Winner is Player One.\n";
else if (o==g && t==k) cout << "The Winner is Player One.\n";
else if (o==g && t==s) cout << "The Winner is Player Two.\n";
else if (o==s && t==k) cout << "The Winner is Player Two.\n";
else if (o==k && t==g) cout << "The Winner is Player Two.\n";
else cout << "No One is the Winner.\n";
return 0;
}

在编译时我会得到这个错误:no match for 'operator>>' in 'std::cin >> o我正在使用代码块。那么这段代码有什么问题呢?

最佳答案

枚举没有运算符>>()。您可以自己实现一个:

std::istream& operator>>( std::istream& is, object& i )
{
int tmp ;
if ( is >> tmp )
i = static_cast<object>( tmp ) ;
return is ;
}

当然,如果你只是 cin 一个整数并自己转换会更容易。只想向您展示如何编写 cin >> 运算符。

关于c++ - enum 类型不能接受 cin 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10371681/

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