C++ 中是否有 Python fstring 或字符串格式等效项?

Is there a Python fstring or string formatting equivalent in C++?

我正在用 C++ 开发一个项目,我需要制作一个包含数组元素的字符串。我知道在 python 中有 sting formattingfstrings 之类的东西,但我不知道 C++ 是否有任何等价物。我不知道这是否是一回事,所以我认为这是最好的询问地点。我正在制作一个井字游戏,我已经制作了棋盘,并且我已经制作了棋盘上的位置。我想做的就是优化电路板,这样我就可以从一个函数调用另一个函数,并让父函数 return 电路板,这样我就可以使用它了。我如何做到这一点的基本想法是把板子变成一个大字符串,里面有一堆换行符和数组元素。我还在一个函数中制作了它,所以我可以在任何需要的地方调用它并将它放在那里。这是我制作的板功能:

void board(){
char board_pos[3][3] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}};
cout << "     |     |     " << endl;
cout << "  " << board_pos[0][0] << "  |  " << board_pos[0][1] << "  |  " << board_pos[0][2] << "  " << endl;
cout << "     |     |     " << endl;
cout << "-----------------" << endl;
cout << "     |     |     " << endl;
cout << "  " << board_pos[1][0] << "  |  " << board_pos[1][1] << "  |  " << board_pos[1][2] << "  " << endl;
cout << "     |     |     " << endl;
cout << "-----------------" << endl;
cout << "     |     |     " << endl;
cout << "  " << board_pos[2][0] << "  |  " << board_pos[2][1] << "  |  " << board_pos[2][2] << "  " << endl;
cout << "     |     |     " << endl;
}

编辑:多亏了你们的帮助我弄明白了,我真的很感激。 :)

我只想 return 您用来固定电路板的类型。在您的情况下,您从 char[3][3].

开始

我会使用 C++11 编写 array:

using Row   = std::array<char, 3>;
using Board = std::array<Row, 3>;

现在可以制作各种功能了:

void move(char player, Board const& b, int row, int col);
bool is_game_over(Board const&);
void print(Board const& b);

等等

您的打印函数可以是:

void print(Board const& b)
{
    std::cout << "     |     |     \n";
    auto print_row = [](Row const& row) {
        std::cout << "  " << row[0] << "  |  " << row[1] << "  |  " << row[2]
                  << "  \n";
    };
    print_row(b[0]);
    std::cout << "     |     |     \n";
    std::cout << "-----------------\n";
    std::cout << "     |     |     \n";
    print_row(b[1]);
    std::cout << "     |     |     \n";
    std::cout << "-----------------\n";
    std::cout << "     |     |     \n";
    print_row(b[2]);
    std::cout << "     |     |     \n";
}

看到了Live

版画

     |     |
  1  |  2  |  3
     |     |
-----------------
     |     |
  4  |  5  |  6
     |     |
-----------------
     |     |
  7  |  8  |  9
     |     |