Разделить код на несколько исходных файлов, теперь я получаю ошибку массива - PullRequest
0 голосов
/ 27 мая 2018

У меня изначально был весь этот код в одном исходном файле, потому что я неправильно прочитал инструкции по назначению.Потом я увидел, что, пожалуйста, НЕ имейте весь этот код в одном исходном файле, и я подумал, что это имеет гораздо больше смысла.

Он прекрасно скомпилирован, когда у меня все есть в моем 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 голосов
/ 27 мая 2018

В вашем коде у вас есть переменная типа char, которая инициализируется значением 1000

char textFile{1000};

, когда кажется, что вы хотите массив char длины1000. Для этого вам нужно изменить определение на

char textFile[1000];

, чтобы создать массив char (обратите внимание на квадратные скобки).Затем в заголовке нужно объявить textFile как массив extern:

extern char textFile[1000];

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...