我有一个函数在一个函数中提示两个字符串值,然后返回这两个字符串。我需要在不同的功能中分别使用这两个。我怎样才能访问这两个?
这是提示功能:
string othello::get_user_move( ) const
{
string column;
string row;
display_message("Enter Column: ");
getline(cin, column); // Take value one.
display_message("Enter Row: ");
getline(cin, row); //Take value two.
return column, row; //return both values.
}
以下是试图使用它的代码(它来自另一个给我们修改的游戏,原来这里只抓取一个值):
void othello::make_human_move( )
{
string move;
move = get_user_move( ); // Only takes the second value inputted.
while (!is_legal(move)) // While loop to check if the combined
// column,row space is legal.
{
display_message("Illegal move.\n");
move = get_user_move( );
}
make_move(move); // The two values should go into another function make_move
}
非常感谢任何帮助人员。
答案 0 :(得分:4)
这个
return column, row;
使用comma operator,评估column
,丢弃结果,并返回row
的值。所以你的函数不会返回两个值。
如果要返回两个值,可以编写一个包含两个值的结构,或使用std::pair<std::string, std::string>
#include <utility> // for std::pair, std::make_pair
std::pair<string, string> othello::get_user_move( ) const
{
...
return std::make_pair(column, row);
}
然后
std::pair<std::string, std::string> col_row = get_user_move();
std::cout << col_row.first << "\n"; // prints column
std::cout << col_row.second << "\n"; // prints row
答案 1 :(得分:0)
使用字符串数组string [],将列存储到字符串[0]中并将行存入字符串[1]并传递字符串数组