我最初将所有这些代码都放在一个源文件中,因为我误读了赋值指令。然后我看到它说请不要将所有这些代码放在一个源文件中,我认为这更有意义。
当我在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++;
}
我确定我错过了一些明显的东西。
答案 0 :(得分:2)
在您的代码中,您有一个类型为char
的变量,其初始值为1000
char textFile{1000};
当您看到需要长度为1000的char
数组时。为此,您需要将定义更改为
char textFile[1000];
创建一个char
数组(注意方括号)。然后在标题中,您需要将textFile
声明为extern
数组:
extern char textFile[1000];