#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <cmath>
#include <cstdlib>
#include <iomanip>
using namespace std;
#define ARRAYSIZE 15;
int main(void)
{
//things needed
ifstream infile;
ofstream outfile;
double xArray[ARRAYSIZE];
}
Как вы можете видеть, мой код должен быть в порядке, но моя программа продолжает говорить мне, что ожидает "[", где xArray [ARRAYSIZE]. Кстати, я использую Microsoft Visual Studio 2013.
#define ARRAYSIZE 15
Возьмите ;
из #define
.
С вашей #define
написанной как есть,
double xArray[ARRAYSIZE];
переводит на
double xArray[15;];
Компилятор ожидает ]
перед первым ;
,
Делая это:
const int ARRAYSIZE 15;
может быть лучше...
Objective-C
и, таким образом, иногда использую #define
, но независимо от языка, когда я делаю что-то простое, я использую const int
(или enum
в некоторых случаях, в зависимости от ситуация).
после препроцесса ваш код
int main(void)
{
//things needed
ifstream infile;
ofstream outfile;
double xArray[15;]; // replace ARRAYSIZE with 15;
}
поэтому вам нужно удалить ;
в #define
#define ARRAYSIZE 15
#define ARRAYSIZE 15;
Define заменит ARRAYSIZE тем, что рядом с ним.
Таким образом, в этом случае он заменит ARRAYSIZE
на 15;
Итак, все, что вам нужно сделать, - это просто удалить полуколонну в инструкции define