我是C++新手(不是一般的编程,只是C++),我正在学习使用C++编程并订阅Pluralsight。我正在编写一个练习程序(通过电脑控制台进行的一系列游戏),我被困在某些东西上。在制作Tic-Tac-Toe游戏时,我想要给董事会提供一个公式,我不必每次重写。因此我定义了一组字符串为我工作,但我无法弄清楚如何调用我的用户定义公式。我不会发布所有的代码,因为它很长,但我会显示你需要的部分(如果一行有“....”,这意味着我删除了多行代码使它适合这个网站更好)。 Incase你想知道,我正在使用Microsoft Visual Studio社区2017 RC和C++ 14。如何在C++中调用用户定义的代码
头文件:
#pragma once
#include "targetver.h"
#include <stdio.h>
#include <tchar.h>
#include <iostream>
#include <string>
using namespace std;
主文件:
....
#define TTTBoard() \
{ \
system("cls"); \
cout << "\n\n Let's play Tic-Tac-Toe!\n\n\n"; \
cout << " A B C " << endl; \
cout << " _______________________ " << endl; \
cout << " | | | |" << endl; \
cout << " 1 | " << PlayerSymA1 << " | " << PlayerSymB1 << " | " << PlayerSymC1 << " |" << endl; \
cout << " |_______|_______|_______|" << endl; \
cout << " | | | |" << endl; \
cout << " 2 | " << PlayerSymA2 << " | " << PlayerSymB2 << " | " << PlayerSymC2 << " |" << endl; \
cout << " |_______|_______|_______|" << endl; \
cout << " | | | |" << endl; \
cout << " 3 | " << PlayerSymA3 << " | " << PlayerSymB3 << " | " << PlayerSymC3 << " |" << endl; \
cout << " |_______|_______|_______|" << endl; \
}
....
int main()
{
//This is where I want to call my TTTBoard formula
}
我试图调用它多种方式,但没有任何工作。以下是我已经尝试过的。我知道我所尝试的一些东西并不完全合理,但我很烦恼,我无法使其工作,所以无论如何我都试过了。
TTTBoard
TTTBoard;
TTTBoard()
TTTBoard();
TTTBoard()
{
}
TTTBoard();
{
}
预先感谢您的帮助!
**一些程序员老兄:**首先,谢谢你这么快回答!其次,我插入我的代码我主要的代码中,你是如何发现: “TTTBoard()” ,我收到以下错误: 错误(活动)\t E0029 \t预期的expressionError \t C2059 \t语法错误:“)” \t 错误C2143语法错误:缺少';'之前'{' 第三,你说我不需要宏,但我不想一遍又一遍地重写我的板代码。这就是我创建TTTBoard定义的原因。是否有另一种方法将代码插入到我的程序中,而不必一遍又一遍地重写它? –
@ StephenR.Hayes所有编译器前端程序在预处理器步骤后都会有一个选项停止,因此您可以检查预处理代码。对于GCC,它使用'-E'选项完成(如'g ++ -E source-file.cpp -o preprocessed-source.cpp')。如果你创建了一个函数,你为什么需要“重写”你的代码?与使用宏相比,不需要再进行“重写”。 –
关于重写,我的意思是我使用宏,因为每次玩家选择放置X或O的位置时,我都需要一直打电话给董事会,我不想重写它。此外,我无法找到如何停止并使用我的程序(Microsoft Visual Studio Community 2017 RC)检查预处理代码。我很抱歉成为一个麻烦,并感谢你的帮助。我通常可以很容易地找出代码;这是我第一次不得不向别人提问(在我的大学教授以外)。所以我对自己感到恼火,因为没有弄清楚这一点。 –