我是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)檢查預處理代碼。我很抱歉成爲一個麻煩,並感謝你的幫助。我通常可以很容易地找出代碼;這是我第一次不得不向別人提問(在我的大學教授以外)。所以我對自己感到惱火,因爲沒有弄清楚這一點。 –