Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/126.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何将字符串赋给int变量?_C++_Converter - Fatal编程技术网

C++ 如何将字符串赋给int变量?

C++ 如何将字符串赋给int变量?,c++,converter,C++,Converter,我正在制作一个卡片和套牌程序,对于如何在构造器中实现一个功能,使卡片等级等于“Ace”“Jack”“King”“Queen”等等,我有点困惑,这取决于数字 Card::Card(char suiter, int ranker) { suit = suiter; rank = ranker; if (rank == 1) { rank = "Ace"; //Assign rank to "Ace" if the number equals 1 }

我正在制作一个卡片和套牌程序,对于如何在构造器中实现一个功能,使卡片等级等于“Ace”“Jack”“King”“Queen”等等,我有点困惑,这取决于数字

Card::Card(char suiter, int ranker) {
    suit = suiter;
    rank = ranker;
    if (rank == 1) {
        rank = "Ace";   //Assign rank to "Ace" if the number equals 1
    }
}

不能使用rank作为i int,next作为i字符串类型。如果您想创建类似的内容,请尝试使用字符串类型作为秩。
ho

您可能不希望在构造函数中执行此操作。相反,当秩值等于特定数字时,可以更改ostream的输出。例如:

ostream & operator<<(ostream &out, const Card &rhs) {   
    if (rhs.rank == 1) {
                out << "Ace of ";
    }
   }

ostream&operator您可以尝试使用枚举。这不是字面上的字符串,而是一组保证不共享值的常量整数

enum CardRank
{
  Ace,
  Two,
... ... ...
  Jack,
  Queen,
  King
};
这将创建一个新类型
CardRank
,您可以仅用于代码中的卡等级。您只需将您的
rank
成员设置为
CardRank
类型,即可通过名称引用其值

在引擎盖下,这是一个无符号int,在大多数情况下,它只能接受从
Ace
(0)到
King
(12)的值

考虑到我没有看到您试图将此字符串写入屏幕,这可能是一种方法。即使您计划写出此字符串,您也可能希望使用此枚举,并且仅当您需要使用以下查找写入字符串时才拉出字符串:

std::string RankNames[] =
{
  "Ace",
  "2",
... ... ... ...
  "Jack",
  "Queen",
  "King"
};

CardRank rank = Ace;

std::cout << RankNames[rank] << std::endl;
std::string RankNames[]=
{
“王牌”,
"2",
... ... ... ...
“杰克”,
“女王”,
“国王”
};
CardRank=Ace;

std::cout
“Ace”
怎么可以是一个分配给int的数字?您不能将字符串分配给int。是的,对不起。。我对编码相当陌生。我只是不知道如何处理这样的问题。将“Ace”赋值给rank可能不是正确的方法,这就是为什么我要问这个问题。使用字符串变量怎么样?然后您可以同时赋值“4”(数字)和“Ace”(字符串)