草庐IT

c++ - 在哪里放置文件以便阅读?

嘿,我要将我尝试使用fstream读取的文本文件放在哪里?在本教程中,http://www.gamedev.net/reference/articles/article1127.asp,他们说ifstreamfin("input.txt");“input.txt”位于何处?在我尝试通过执行此操作“C:\Users\XXXXXXX\Documents\test.in”来引导文件路径之前。然而,这似乎不起作用,Incorrectdatainputwithfstream.我正在使用代码块。提前致谢。 最佳答案 input.txt应该在工作

c++ - 是否有 "safe"方法来声明 lippincott 函数,以便它不会在 catch 之外被调用?

ALippincottfunction是一个将异常转换为返回码的函数,可以在来自另一种不支持异常的语言(例如C)的回调中安全地处理该返回码。这样的函数,因为它们故意使用throw没有参数,因此重新抛出最近捕获的异常,不能在catch的上下文之外调用block。我想知道现代C++(c++17或c++20)是否有任何声明机制来专门识别此类函数,并确保只从catch的上下文中调用函数block(或来自另一个此类函数的上下文),如果从任何其他上下文调用它,则会生成编译时错误。 最佳答案 没有办法告诉编译器只应从catch处理程序调用特定函数

c++ - 如何手动将数据放入 boost::asio::streambuf 以便稍后使用 std::istream 读取它?

我正在尝试使用std::istream作为数据源。我想将自定义二进制数据放置到istream的流缓冲区中,以便稍后可以从istream中检索它。我已经阅读了有关boost::asio::streambuf的内容,以及如何使用它来完成我想要的,但使用套接字作为数据源而不是我想使用的内存缓冲区。据我了解documentation,步骤应该是:创建一个boost::asio::streambuf创建一个传递streambuf的std::istream调用boost::asio::streambuf::prepare以获取表示输出序列的缓冲区列表。以某种方式写入输出序列。调用boost::as

c++ - 如何在 Linux 中重新定义 malloc() 以便在 C++ 中使用 new

我有一个为我定义的mem_malloc()和mem_free(),我想用它们来替换malloc()和free(),从而替换C++的new和delete。我定义它们如下:extern"C"{externvoid*mem_malloc(size_t);externvoidmem_free(void*);void*malloc(size_tsize){returnmem_malloc(size);}voidfree(void*memory){mem_free(memory);}}但是,我收到两个链接错误:[user@machinetest]$g++-m32-pthreadmain.cpp-s

.net - 我应该如何用 C++ 编写我的库以便在 .NET 中使用?

我有一个用C++编写的库的原型(prototype)。它是CPU密集型的,所以我用C编写了一个部分(因为工具),C++中的内容并使用了自定义内存分配器和各种东西。我想在.NET中使用这个库。我不确定我应该怎么做。似乎我应该编写一个C接口(interface)并在.NET中编写一个包装器以使用托管C++,我假设我有完全相同的代码文件,除了我添加一个或两个文件并为它们编写一个托管类。如果我选择托管路线,我应该了解哪些好处或限制? 最佳答案 C++/CLI是您正在寻找的答案。C++/CLI的美妙之处在于它允许您将nativeC++与.NE

c++ - 如何让 CMake 在构建之前运行 python 脚本,以便为我的项目生成要在构建中使用的文件?

我有一个python脚本,它解析项目目录中的所有C++源文件,在文件中查找一些内容,然后生成一个文件。这个python脚本工作正常,但我希望它在构建我的C++项目之前自动运行。所以基本上,我希望这个python脚本在每次构建之前运行,所以如果任何.h或.cpp文件已被更改。如果python脚本本身已被更改,我也希望它运行。我有问题中的python脚本,genenums.py,与我的C++源文件(例如main.cpp等)位于同一目录中。我已经尝试根据文档尝试使用add_custom_command,但我无法让cmake在任何情况下运行此python脚本。我不确定如何使这项工作正常进行,因

Android Studio:如何将最后一个活动保存在首选项中,以便在重新启动时加载

每个人。我在这里是一个认真的新秀,所以请在某种程度上宽恕表格/术语问题。我保证,我已经研究了这个问题,实际上已经包括所有相关链!是的,我阅读了Android材料。我还阅读了有关此主题的三本书的章节!每个人似乎都使用与用户名或声音设置有关的示例。我是否使用错误的地方来保存此数据类型?作为我试图学习Java和Android的第一个项目,我正在写一本互动小说书-想一想从童年开始选择自己的冒险书。我希望该应用程序将最新活动名称保存在共享流程中,以便该应用程序(自动或通过“加载游戏”按钮)返回到用户最后一次的活动(页面)。然后,我计划在用户完成本书时编辑每个活动的偏好,以便他们可以在任何地方加载。这是代

c++ - 存储 2D 点以便快速检索矩形内的点

我有大量的2D点,我想快速获取位于某个矩形内的点。让我们说一个'。是任意点,“X”是我想在矩形内找到的点,矩形内的“T”为TopLeft,“B”为BottomRight点:.......T-----+..|XX|..+-----B.......我尝试了一个带有排序仿函数的std::set,它对集合开头的TopLeft点和集合结尾的BottomRight点进行排序。当首先按X值排序时,这将导致找到以下点。.......T-----+.X|XX|X.+-----B.......这意味着我必须检查每个找到的点,是否真的在矩形内。不太好。执行此操作的更好方法是什么?我的语言是C++(Windo

c++ - 总是使用指针而不是引用是否可以接受,以便在需要时轻松转换为智能指针?

我知道引用优于指针,但更改所有这些“.”非常乏味。需要时“->”。那么总是使用指针而不是引用是一种可以接受的做法,以便在需要时轻松地将它们转换为智能指针吗?或者有什么方法可以快速更改对指针的引用? 最佳答案 Soisitanacceptablepracticetoalwaysusepointersinsteadofreferences,tobeeasilyconvertthemtosmartpointersifneeded没有。一般来说,always规则总是不好的。(包括这个)。为什么要将引用转换为智能指针?如果它是引用,则无需担心

c++ - Cython 代码可以编译成 dll 以便 C++ 应用程序可以调用它吗?

我有一个C++程序,它有一种插件结构:当程序启动时,它会在插件文件夹中寻找具有某些导出函数签名的dll,例如:voidInitPlugin(FuncTable*funcTable);然后程序会调用dll中的函数进行初始化,并将函数指针传递给dll。从那时起,dll就可以与程序对话了。我知道Cython允许您在Python中调用C函数,但我不确定我是否可以编写Cython代码并将其编译为dll,以便我的C++程序可以使用它进行初始化。示例代码会很棒。 最佳答案 在dll中使用cython-module与usingacython-mod