尚未声明char变量
char variable has not been declared
我昨天试图将代码分为几个文件时遇到了一个问题。
昨天早晨,我的整个代码都在一个文件中,为了更轻松地跟踪所有内容,我想将代码拆分为更多文件。
这一切都很好,直到我达到了我需要声明变量的功能,尽管我已经有(但也许位于错误的位置)。
因为代码太长,我已经将所有文件放在pastebin中。
我在main.cpp中声明了"字段":
char field[20][41];
整个文件在这里:https://pastebin.com/jy1xvdpl
我想在我的字段中使用它。cpp:
void loadLevel(int levelnumber) {
// concatenate leven base with level number
std::string level = "level" + std::to_string(levelnumber) + ".txt";
// print field
// load the text file
std::ifstream file;
file.open(level);
char c;
// read line by line, character by character and store it in field
for (int i = 0; i < 20; i++) {
for (int j = 0; j < 41; j++) {
file.get(c);
field[i][j] = c;
}
}
file.close();
}
field.h看起来像这样:
#ifndef field
#define field
#include <iostream>
#include <string>
#include <fstream>
void loadLevel(int levelnumber);
void drawField();
#endif // !field
问题是我不知道,在哪里定义char字段,因为如果在这两个文件中完成了错误,我会遇到错误。因此
P.S。这是我在C 中的第一个程序,我每天都在学习新事物。我感谢有关如何更好地做某些事情的任何提示^^
亲切的问候,本杰明
当您在主文件中声明变量时,您无法在另一个文件中使用它。(或至少很容易)
如果您想在field.cpp中使用字段变量,则可以在字段中定义它。
代码可能如下。
#ifndef字段
#define field
#include <iostream>
#include <string>
#include <fstream>
void loadLevel(int levelnumber);
void drawField();
char field[20][41];
#endif // !field
尽管这将不允许您使用分配给field[i][j]
的信息。
为此,我将在field.h
和field.cpp
中返回field[i][j]
的值。
您可以通过将其作为参数传递给LoadLevel函数,在您的函数中使用字段数组,如果要使用指针,也可以检查此问题。因此您的功能看起来像:
void loadLevel(int levelNumber,char field [] [41]);
相关文章:
- 在C++中将变量 wstring 分配给 Char 数组
- 如何在保持其值的同时将 c++ 无符号字符变量转换为 char 变量
- 如果变量名称不跟在 char* 后面,const char* 是否有效?
- 如何更好地检查两个 char 变量是否在一组值中?
- 将双精度值转换为 char 变量时字符串流如何工作
- 从二进制流中读取时,将双精度变量的地址转换为 char* 意味着什么?
- C++ 如何检查 char 变量是否未定义(未初始化)
- 如何将整数分配给 char 类型的变量
- 在 c++ 中将 Char 数组添加到 Char * 变量
- 如何正确地检查变量char中包含的字母
- char指针或char变量的默认值是多少
- 当对字符变量使用toupper()时,所述char变量输出多个字符.我该如何防止这种情况发生
- 在变量名后声明带有 () 的非内部类型与不使用变量名的行为不同。即 std::map<int,char>x(); - 这是怎么回事?
- 在C++中,从构造函数中将字符串文本分配给成员const char*变量时会发生什么
- 声明具有两种类型的变量:"int char"
- 程序的执行在 C++ 中输入 char 变量后结束
- 如何创建一个 char *[] 变量,以便将其传递给函数
- 如何初始化类的 char 成员变量?
- LLVM-如何将ConstantExpr转换为ConstantDataArray,以便打印全局变量char*的值
- C++如何将变量char数组从一个函数传递到另一个函数