将代码拆分为多个源文件,现在我收到了数组错误

时间:2018-05-27 02:54:39

标签: c++ c++11

我最初将所有这些代码都放在一个源文件中,因为我误读了赋值指令。然后我看到它说请不要将所有这些代码放在一个源文件中,我认为这更有意义。

当我在main.cpp中拥有所有内容时编译得很好,但现在它给了我:

  

错误:类型无效' char [int]'对于数组下标"

在我的主要内容中我将数组声明为:

#include "CaesarEncryptDecrypt.h"

using namespace std;
string pFile, cFile;
char textFile{1000};

int main()
{
//rest of main code...

在我的标题中,我宣布它为:

// Globals
extern string pFile, cFile;
extern char textFile;

然后它到达我的两个源代码文件,它在这里显示错误:

void encrypt (int shift, ifstream & plainTextFile, ofstream & cipherFile){
    char letter;
    int i = 0;
    while(!plainTextFile.eof()){
            plainTextFile.get(textFile[i]);
            /* 'error: invalid types 'char[int]' <--This error shows up at 
               every instance of me trying to use textFile 
               array. */

            i++;
    }

我确定我错过了一些明显的东西。

1 个答案:

答案 0 :(得分:2)

在您的代码中,您有一个类型为char的变量,其初始值为1000

char textFile{1000};

当您看到需要长度为1000的char数组时。为此,您需要将定义更改为

char textFile[1000];

创建一个char数组(注意方括号)。然后在标题中,您需要将textFile声明为extern数组:

extern char textFile[1000];