草庐IT

android - ant debug 和 sdk.dir

我在生成AndroidAPK文件时遇到问题。当我运行antdebug时编译工作正常,但是当我运行antdebug时我有以下错误:iMac:proj.androidsmartmind$antdebugBuildfile:/Users/smartmind/Works/Smallthing/cocos2d-x/samples/HelloCpp/proj.android/build.xmlBUILDFAILED/Users/smartmind/Works/Smallthing/cocos2d-x/samples/HelloCpp/proj.android/build.xml:46:sdk.di

android - 运行时异常 : Unable to create output dir:/storage/emulated/0/app_spoon-screenshots

我正在使用gradle-spoon-plugin为AndroidUI测试设置Spoon使用Spoon2.0.0快照。我的项目是使用AndroidGradle插件3.0.1设置的。当通过spoonRule.screenshot(activity,"hello")截屏时,我得到这个RuntimeException:java.lang.RuntimeException:Unabletocreateoutputdir:/storage/emulated/0/app_spoon-screenshotsatcom.squareup.spoon.SpoonRule.createDir(SpoonRu

c++ - Valgrind 未显示使用不正确的 c_str() 的无效内存访问

想象一下这样的代码:stringf(){stringr="ab";returnr;}intmain(){constchar*c=f().c_str();printf("%s.\n",c);return0;}这段代码可能会崩溃,对吧?因为c指向的那个字符串被破坏了。但是通过Valgrind运行它不会显示任何无效的内存访问。为什么?我知道Valgrind无法检查堆栈,但“ab”实际上位于堆上,对吧? 最佳答案 Thiscodemaycrash,right?Becausethatstringthatcpointstoisdestroyed

c++ - 在临时字符串上使用 string::c_str

这个问题在这里已经有了答案:C++destructionoftemporaryobjectinanexpression(4个答案)关闭8年前。关于临时对象何时被销毁,这是否有效:FILE*f=fopen(std::string("my_path").c_str(),"r");是否会在计算完fopen的第一个参数后或fopen调用后立即销毁临时对象。使用以下代码进行测试:#includeusingnamespacestd;structA{~A(){printf("~A\n");}constchar*c_str(){return"c_str";}};voidfoo(constchar*s)

c++ - C++ 中是否有等效的 str_replace?

在PHP中,有一个str_replace基本上执行查找和替换的功能。在C++中是否有此函数的等效项? 最佳答案 不完全是,但看看BoostStringAlgorithmsLibrary-在本例中为replacefunctions:std::stringstr("aabbaadd");boost::algorithm::replace_all(str,"aa","xx");str现在包含"xxbbxxdd"。 关于c++-C++中是否有等效的str_replace?,我们在StackOve

c++ - 我如何编写一个类似于 __FILE__ 的 cpp __DIR__ 宏

__FILE__和__LINE__宏内置于C预处理器中,通常用于打印带有文件名的调试输出和行号。我需要类似的东西,但只是路径末尾的目录名称。例如,如果我的代码位于:/home/davidc/some/path/to/some/code/foo/bar我需要一个宏,如果代码在/home/davidc/some/path/to/some/code中,它只会给我“bar”/foo/bee然后我需要它给我“蜜蜂”。有什么想法吗?(顺便说一句,这是针对C++应用程序的)。更新:明确地说,我正在寻找一个宏,它会在编译时给我一个包含目录名称的字符串,我不想在运行时进行任何字符串处理。

c++ - 为什么要在函数中使用 c_str()

这个问题在这里已经有了答案:Whydon'tthestd::fstreamclassestakeastd::string?(10个答案)关闭8年前。我正在阅读《C++Primer》一书及其使用的文件输入输出章节:ifstreaminfile(ifile.c_str());打开名称在字符串ifile中的文件。我尝试了代码,即使没有c_str()也能完美运行。那么使用它有什么意义呢?当我尝试从命令行参数打开文件时,我应该使用c_str()吗?我的意思是正确的用法:ifstreamfin(argv[1])或ifstreamfin(argv[1].c_str())

c++ - "if (getline(fin, str)) {}"是否符合C++11标准?

我检查了C++11标准,发现了以下事实:std::getline(fin,str)返回一个basic_ios对象,其类有一个成员函数explicitoperatorbool()const;basic_ios类没有成员函数operatorvoid*()const;作为C++11之前的版本。所以,我认为if(getline(fin,str)){}不符合标准。应该写成if(bool(getline(fin,str)){}。(但是,VC++2012对此用法给出警告。即强制void*为bool)我说的对吗? 最佳答案 代码是一致的。当对象自动

c++ - 从函数返回 'c_str'

这是我在网上找到的一个小型图书馆:constchar*GetHandStateBrief(constPostFlopState*state){staticstd::ostringstreamout;//...restofthefunction...returnout.str().c_str()}在我的代码中我这样做:constchar*d=GetHandStateBrief(&post);std::cout现在,起初d包含垃圾。然后我意识到我从函数中获取的C字符串在函数返回时被销毁,因为std::ostringstream是在堆栈上分配的。所以我补充说:returnstrdup(out

c++ - 调用空字符串的 c_str

这个代码片段是正确的还是会导致未定义的行为?std::strings;assert(strlen(s.c_str())==0);如果不是undefinedbehavior,上面的断言会通过吗? 最佳答案 这是完美定义的,断言通过了。c_str()函数将始终返回有效的以零结尾的C字符串。通常会使用empty()来测试空字符串。 关于c++-调用空字符串的c_str,我们在StackOverflow上找到一个类似的问题: https://stackoverflow