C++ 进程因状态 3 混乱而终止

2023-12-24

我对编程非常陌生,但在过去一周左右的时间里一直在关注 C++ 教程并积累了许多 PDF 来帮助我。我在其中或网上找不到任何足够清楚地回答我的问题的内容。请原谅我的新手。

相关代码:

日志文件.hpp

// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
// HEADER :: CLASS INTERFACE FILE

// ==============================
// Include Guard
#ifndef __LOGFILE_INCLUDED__ // If Actor.hpp hasn't been included yet
#define __LOGFILE_INCLUDED__ // Define this for the compiler so it knows it has now been included

// ==============================
// Forward declared dependencies

// ==============================
// Included dependencies
#include <iostream>
#include <fstream>

// ==============================
// Actual class
class Logfile { // Logfile
public:
    // Globally accessible variables
    bool LACT; // Is log file active?
    std::ofstream LOG; // Actual log file
    std::string entry; // Data to be entered in log file

    // ==============================
    // Core methods
    Logfile(); // Constructor
    ~Logfile(); // Destructor

    // Additional methods
    bool isActive(); // Is log file active?
    void logEntry(std::string entry); // Make an entry in the log if 'LACT' is set to true
    void toggleLog(); // Toggle log file open or closed
};

extern Logfile *log; // This variable is declared in main

#endif // __LOGFILE_INCLUDED__

日志文件.cpp

// ==============================
// Included dependencies
#include "Logfile.hpp"

// ==============================
// Core methods
Logfile::Logfile() { // Constructor
    LACT = true; // Toggle logfile to active
    LOG.open ("LOG.txt"); // Open 'log.txt' and prepare it to receive 'LOG' entries
    LOG << "LOG FILE CLASS CONSTRUCTED\n";
    LOG << "LOG FILE OPENED\n";
}

Logfile::~Logfile() { // Deconstructor
    LOG << "LOG FILE CLOSED\n";
    LOG << "LOG FILE CLASS DECONSTRUCTED";
    LOG.close(); // Close log file
}

// Additional methods
bool Logfile::isActive() { // Is log file active?
    if ( LACT ) return true;
    else return false;
}

void Logfile::logEntry(std::string entry) { // Make an entry in the log if 'LACT' is set to true
    if ( LACT ) LOG << entry << std::endl;
}

void Logfile::toggleLog() { // Toggle log file open or closed
    if ( LACT ) { // Log file is active
        LOG << "LOG FILE CLOSED\n";
        LOG.close(); // Close log file
    } else { // Log file is inactive
        LOG.open ("LOG.txt"); // Open 'log.txt' and prepare it to receive 'LOG' entries
        LOG << "LOG FILE OPENED\n";
    }
}

引擎.hpp

// ==============================
// Forward declared dependencies
class Logfile;

class Engine { // Core system, main loop
public :
    // Globally accessible variables 
    Logfile *log; // Declare 'log' as an empty pointer (*)

引擎.cpp

// ==============================
// Included dependencies
#include "Logfile.hpp"

// ==============================
// Core methods
Engine::Engine() { // Constructor method
    // Initialization
    log = new Logfile(); // Declare 'log' as pointer to access log file
    TCODConsole::initRoot(80,50,"Testbed",false); // Create 'root' console (not fullscreen)
    if ( log->isActive() ) log->logEntry("(TCODConsole) Root console initialized"); // WORKS

Map.hpp

// ==============================
// Forward declared dependencies
class Logfile;

extern Logfile *log; // Pointer exists in Engine.hpp

Map.cpp

// ==============================
// Included dependencies
#include "Logfile.hpp"

if ( log->isActive() ) log->logEntry("(TCODConsole) Root console initialized"); TERMINATION STATUS 3
if ( tiles[(x-1)+y*width].tType =="floor" ) tally++; // Left tile status, add 1 to tally if floor  :  TERMINATION STATUS 3
if ( tiles[(x-1)+(y-1)*width].canWalk ) tally++; // Left-top tile status, add 1 to tally if floor  :  WORKS

如果我理解正确的话,终止状态 3 表明我错误地引用了一个变量,无论它是否是指针......?当我想从 Map.cpp 中的 2Darray 中的单个图块访问 tType 字符串时,我最初遇到了问题(尽管我可以很好地访问布尔变量 canWalk...),并且无法弄清楚出了什么问题,所以我决定学习实现外部日志来查找问题...但我想我在这样做时找到了回到同一问题的方法...

非常感谢任何帮助,批评也是如此,我有很多东西要学习。

--

我问这个问题的最初目的是(现在我意识到)获得一个可以从多文件程序中的任何 *.cpp 文件访问的全局声明的对象。我刚刚找到这个答案:http://www.cplusplus.com/forum/beginner/3848/ http://www.cplusplus.com/forum/beginner/3848/,以防这可能对遇到类似问题的其他人有帮助。


在您的 Logfile.hpp 中您丢失了#include <string>: 你的一个LogFile类变量被声明std::string所以你需要包括它。

在您的 Engine.cpp 中,您忘记将您的 Engine.hpp 包含在您的 LogFile *log; 中变量被声明。这会导致您尝试分配新的 Engine.cpp 文件中出现错误LogFile反对它。

So add #include <string>到 Logfile.hpp 的顶部并添加#include "Engine.hpp"到 Engine.cpp 的顶部

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ 进程因状态 3 混乱而终止 的相关文章

  • 通过 CMIS (dotCMIS) 连接到 SP2010:异常未经授权

    我正在使用 dotCMIS 并且想要简单连接到我的 SP2010 服务器 我尝试用 C 来做到这一点 如下所示http chemistry apache org dotnet getting started with dotcmis htm
  • CodeIgniter:My_Lang 中的 get_instance

    我发现这个有用的国际化代码 http pastebin com SyKmPYTX http pastebin com SyKmPYTX 一切正常 除了我无法在此类中使用 CI 函数 我想从 DB 设置 languages 和 special
  • Web 客户端和 Expect100Continue

    使用 WebClient C NET 时设置 Expect100Continue 的最佳方法是什么 我有下面的代码 我仍然在标题中看到 100 continue 愚蠢的 apache 仍然抱怨 505 错误 string url http
  • 动态加载程序集的应用程序配置

    我正在尝试将模块动态加载到我的应用程序中 但我想为每个模块指定单独的 app config 文件 假设我的主应用程序有以下 app config 设置
  • ASP.NET MVC:这个业务逻辑应该放在哪里?

    我正在开发我的第一个真正的 MVC 应用程序 并尝试遵循一般的 OOP 最佳实践 我正在将控制器中的一些简单业务逻辑重构到我的域模型中 我最近一直在阅读一些内容 很明显我应该将逻辑放在域模型实体类中的某个位置 以避免出现 贫血域模型 反模式
  • 使用实体框架模型输入安全密钥

    这是我今天的完美想法 Entity Framework 中的强类型 ID 动机 比较 ModelTypeA ID 和 ModelTypeB ID 总是 至少几乎 错误 为什么编译时不处理它 如果您使用每个请求示例 DbContext 那么很
  • 类模板参数推导 - clang 和 gcc 不同

    下面的代码使用 gcc 编译 但不使用 clang 编译 https godbolt org z ttqGuL template
  • 在 Windows 窗体中保存带有 Alpha 通道的单色位图会保存不同(错误)的颜色

    在 C NET 2 0 Windows 窗体 Visual Studio Express 2010 中 我保存由相同颜色组成的图像 Bitmap bitmap new Bitmap width height PixelFormat Form
  • OleDbDataAdapter 未填充所有行

    嘿 我正在使用 DataAdapter 读取 Excel 文件并用该数据填充数据表 这是我的查询和连接字符串 private string Query SELECT FROM Sheet1 private string ConnectStr
  • 在 ASP.NET 5 中使用 DI 调用构造函数时解决依赖关系

    Web 上似乎充斥着如何在 ASP NET 5 中使用 DI 的示例 但没有一个示例显示如何调用构造函数并解决依赖关系 以下只是众多案例之一 http social technet microsoft com wiki contents a
  • 带动态元素的 WPF 启动屏幕。如何?

    我是 WPF 新手 我需要一些帮助 我有一个加载缓慢的 WPF 应用程序 因此我显示启动屏幕作为权宜之计 但是 我希望能够在每次运行时更改屏幕 并在文本区域中显示不同的引言 这是一个生产力应用程序 所以我将使用非愚蠢但激励性的引言 当然 如
  • 控件的命名约定[重复]

    这个问题在这里已经有答案了 Microsoft 在其网站上提供了命名指南 here http msdn microsoft com en us library xzf533w0 VS 71 aspx 我还有 框架设计指南 一书 我找不到有关
  • 对现有视频添加水印

    我正在寻找一种用 C 在视频上加水印的方法 就像在上面写文字一样 图片或文字标签 我该怎么做 谢谢 您可以使用 Nreco 视频转换器 代码看起来像 NReco VideoConverter FFMpegConverter wrap new
  • 声明的包“”与预期的包不匹配

    我可以编译并运行我的代码 但 VSCode 中始终显示错误 早些时候有一个弹出窗口 我不记得是什么了 我点击了 全局应用 从那以后一直是这样 Output is there but so is the error The declared
  • 如何从两个不同的项目中获取文件夹的相对路径

    我有两个项目和一个共享库 用于从此文件夹加载图像 C MainProject Project1 Images 项目1的文件夹 C MainProject Project1 Files Bin x86 Debug 其中有project1 ex
  • 混合 ExecutionContext.SuppressFlow 和任务时 AsyncLocal.Value 出现意外值

    在应用程序中 由于 AsyncLocal 的错误 意外值 我遇到了奇怪的行为 尽管我抑制了执行上下文的流程 但 AsyncLocal Value 属性有时不会在新生成的任务的执行范围内重置 下面我创建了一个最小的可重现示例来演示该问题 pr
  • C# 模拟VolumeMute按下

    我得到以下代码来模拟音量静音按键 DllImport coredll dll SetLastError true static extern void keybd event byte bVk byte bScan int dwFlags
  • C++ 中类级 new 删除运算符的线程安全

    我在我的一门课程中重新实现了新 删除运算符 现在我正在使我的代码成为多线程 并想了解这些运算符是否也需要线程安全 我在某处读到 Visual Studio 中默认的 new delete 运算符是线程安全的 但这对于我的类的自定义 new
  • C++ 标准是否指定了编译器的 STL 实现细节?

    在写答案时this https stackoverflow com questions 30909296 can you put a pimpl class inside a vector我遇到了一个有趣的情况 这个问题演示了这样一种情况
  • 对来自流读取器的过滤数据执行小计

    编辑问题未得到解答 我有一个基于 1 个标准的过滤输出 前 3 个数字是 110 210 或 310 给出 3 个不同的组 从流阅读器控制台 问题已编辑 因为第一个答案是我给出的具体示例的字面解决方案 我使用的实际字符串长度为 450 个

随机推荐

  • 如何在不重新加载和 # hack 的情况下更改 Windows 位置?

    起初我认为哈希破解是一个要求 但是从 Facebook 最近的更新来看 我不这么认为 最初的 hash hack 我不确定这是否是正确的术语 是通过更改 location hash 可以在 URL 中保存状态而不刷新页面 这被谷歌的应用程序
  • 在 Swift 中转义反斜杠

    我将正则表达式作为字符串值发送到 CloudKit 但它似乎不喜欢它 将 by 然而 一旦我从我的应用程序中获得这个值 我想以其原始形式重新转换它 代替 我不知道如何在 Swift 中管理这种转义字符 因为我什至无法用 a 设置字符串 在我
  • 如何加速“独特”数据框搜索

    我有一个数据框 其尺寸为 2377426 行 x 2 列 如下所示 Name Seq 428293 ENSE00001892940 ENSE00001929862 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
  • 如何每隔x秒重复执行一个函数?

    我想永远每 60 秒重复执行一次 Python 中的函数 就像NSTimer http web archive org web 20090823012700 http developer apple com 80 DOCUMENTATION
  • java持久化内存泄漏

    我的表中有 100 万行 我想获取所有行 但是当我尝试通过分页获取带有 jpa 的所有行时 我收到 java 堆错误 你认为我错过了什么吗 任何建议 int counter 0 while counter gt 0 javax persis
  • 在 Docker Alpine 上安装seaborn

    我正在尝试安装seaborn使用这个 Dockerfile FROM alpine latest RUN apk add update python py pip python dev RUN pip install seaborn CMD
  • 获取客户端隐藏字段的值

    单击服务器端的按钮 我将表中的列中的值分配给隐藏字段 Dim dsGetEnquiryDetails dbl usp GetEnquiryRegisterDetails Val lblEnquiryRegisterID Text AsQue
  • Docker:Opensearch 拒绝与 docker 中的 opensearch 文档中的示例连接

    我正在 docker 容器上运行 opensearch v 1 0 0 并在localhost 请考虑这个问题IS NOT和这篇文章一样 Opensearch Docker Image 无法建立新连接 Errno 111 连接被拒绝 htt
  • 对贝塞尔曲线的点进行动画处理[重复]

    这个问题在这里已经有答案了 是否可以对贝塞尔曲线的点进行动画处理 我正在尝试从直线到箭头的平滑过渡 这是该行在代码中的样子 Color Declarations UIColor white UIColor colorWithRed 1 gr
  • 计算沿轴的直方图

    有没有办法沿着 nD 数组的轴计算许多直方图 我目前使用的方法是for循环迭代所有其他轴并计算numpy histogram 对于每个生成的一维数组 import numpy import itertools data numpy rand
  • C++11/14 中的 Boost.Pointer 容器被 std::unique_ptr 废弃了?

    Does std unique ptr make Boost Pointer容器C 11 14 中的库已过时吗 在 C 98 03 中没有移动语义 并且有一个智能指针 例如shared ptr与引用计数相关overhead 对于参考计数块
  • 使 FAB 响应软键盘显示/隐藏更改

    我看过各种关于 FAB 响应屏幕底部 Snackbar 弹出窗口以及滚动敏感 FAB 的帖子 但是否有一些实施FloatingActionButton Behavior 或类似 将 FAB 移至键盘上方当它出现时 现在 当我单击某个按钮时
  • 将 IE 窗口置于屏幕前面

    我正在动态创建新的 IE 浏览器实例 并从那里打开一个 aspx 页面 一切正常 但浏览器没有在屏幕前面弹出 当我从那里单击它时 能够在任务栏中看到 Aspx 页面 它会出现在前面 如何在 IE 创建后立即将该页面显示在所有屏幕的前面 我已
  • 如何处理来自不同时区的日期时间

    我有一个 django 应用程序 它在数据库 postgres 中存储 UTC 的日期时间 它在世界各地都有用户 但在应用程序逻辑中 我根据本地时间范围进行了一些验证 即用户在瓜亚基尔并且整个周日都发生了一些事情 我在执行它时遇到问题并进行
  • 调用线程无法访问该对象,因为另一个线程拥有它

    我正在尝试从 PowerShell 检索打印队列列表 如下所示 但我越来越 The calling thread cannot access this object because a different thread owns it 发生
  • 如何在Python中进行二次排序?

    如果我有一个数字列表 4 2 5 1 3 我想先按某个功能对其进行排序f然后对于具有相同值的数字f我希望它按数字的大小排序 这段代码似乎不起作用 list5 sorted list5 list5 sorted list5 key lambd
  • webpack 在react.js 中无法正常工作

    我使用创建了一个 hello world 反应应用程序create react app命令 然后我尝试使用运行相同的文件webpack 但它不能正常工作 比如 ico css文件是not rendering到屏幕上 请帮我解决这个问题 we
  • 在 Observable Angular js 2 中迭代 json 字符串

    以下是我的html代码 tr td c name td td c skill td tr 在我的 json 中 name abc skill xyz 这是可行的 但我需要迭代这个 json 字符串 var obj a 1 b 2 for v
  • 如何在运行时重新转换类?

    我正在尝试修改一个已加载到 JVM 中的类 我找到的解决方案是这样的 将代理附加到 PID 指定的 JVM 例如8191 代码 AttachTest 从 JVM 中已加载的类中找到您要修改的类 例如 8191 使用仪器添加变压器 代码 Ag
  • C++ 进程因状态 3 混乱而终止

    我对编程非常陌生 但在过去一周左右的时间里一直在关注 C 教程并积累了许多 PDF 来帮助我 我在其中或网上找不到任何足够清楚地回答我的问题的内容 请原谅我的新手 相关代码 日志文件 hpp HEADER CLASS INTERFACE F