草庐IT

不出意外

全部标签

从 const int* 到 int* 的 C++ 转换处理意外结果

这个问题在这里已经有了答案:whichpropertyofaconstantmakesitnotchangable?(3个答案)关闭6年前。在c++中,我们知道我们不能将constint*转换成int*。但是我有一个代码片段,我可以在其中将constint*转换为int*。我是C++的初学者,我用谷歌搜索了这个,但我只是得到提到constint*can'tbeconvertedintoint*toavoidconstviolation的链接。我无法弄清楚为什么它编译没有错误#includeusingnamespacestd;intmain(void){constinta1=40;con

c++ - QDir::entryInfoList 意外行为

我的代码非常简单:voidDirManagement::listFiles(QDirdir){QFileInfoListlist=dir.entryInfoList(QDir::NoFilter,QDir::NoSort);for(inti=0;i问题是,如果我的目录路径是:“/home/adasi/Desktop/GCUFolder”这是结果:#0"/home/Alya/Desktop/MCUFolder"#1"/home/Alya/Desktop"#2"/home/Alya/Desktop/MCUFolder/32MonOct242011"#3"/home/Alya/Desktop

c++ - 使用带嵌套 vector 的迭代器的意外行为

此示例程序获取一个迭代器,该迭代器指向包含在另一个vector中的一个vector的元素。我将另一个元素添加到包含vector中,然后打印出先前获得的迭代器的值:#include#includeintmain(intargc,charconst*argv[]){std::vector>foo(3,std::vector(3,1));std::vector::iteratorfoo_it=foo[0].begin();std::cout(3,2));std::cout由于对应于foo_it的vector没有被修改,我希望迭代器仍然有效。但是,当我运行此代码时,我得到以下输出(也在ideo

c++ - 控制台输出中的意外字符

我正在为游戏CrysisWars编写一个新的服务器-客户端网络。我有一个函数,可以将字符串居中到控制台窗口中每行支持的字符数。该窗口适合113个字符,但我已将函数中的最大字符宽度设置为111以很好地适合文本。这是我的功能:stringMain::CenterText(strings){returnstring((111-s.length())/2,'')+s;}这个函数来自questionIaskedlastyear,但我不确定我是否最终在过去的项目中使用了它。我正尝试在此上下文中使用此函数(CryLogAlways函数只是将字符串记录到游戏/服务器日志文件并打印它):CryLogAl

c++ - 意外#else

由于某种我无法解释的原因,编译器正在输出一个错误,指出它发现了一个意外的#else标记。这发生在文件的开头:#ifdefined(_USING_MFC)#include"stdafx.h"#else#include#endif在那段代码之前没有任何东西需要多个(单行)注释。此错误发生在.cpp文件中。您在上面看到的是文件的开头。在此之前什么都没有。我尝试在上面定义的代码之前添加以下代码,现在错误是意外的#endif#if1#include"stdafx.h"#endif所以我怀疑包含以下代码的stdafx.h文件存在问题:#ifndefSTDAFX_H_INCLUDED#defineS

c++ - std::bind - 在 vi​​sual studio 中编译意外(未声明的标识符)错误

好吧,如果我正确理解std::bind,我可以使用_1之类的参数来定义一个未给定的参数?正确的?考虑以下行:std::functionfunc(std::bind(&Pred,_1,"name"));这应该行得通,对吧?这将用于std::find_if()函数,因此第一个参数应该是值类型,第二个参数应该是字符串。但是visualstudio2010对此提示并显示以下错误消息:errorC2065:'_1':undeclaredidentifier这很奇怪,我怎么能在visualstudio中说“嘿,第一个参数未绑定(bind)”。Pred是一个以value_type,conststd:

c++ - 将 '\0' 添加到 std::string 时出现意外行为

为什么C++标准允许以下内容?#include#includeintmain(){std::strings(10,'\0');//s.length()nowis10std::cout为什么要加0算呢?它看起来像是破坏了字符串的完整性,不是吗?但我检查了标准,这是正确的行为。 最佳答案 Whydoesstandardallowsfollowing?因为设计C++字符串的人决定允许这样的事情发生。我不确定设计C++字符串的团队中是否有人在SO上……但是既然你自己说标准允许它,那就是它的方式,我怀疑它是否会改变。有时拥有一个可以包含“任何

npm err!意外的输入末端1:379680

我最近安装了最新版本的nodejs,即v8.1.3,并且正在使用Windows10之后,我想安装Cordova和离子包,所以我运行了命令npminstall-gioniccordova运行此命令后,我会遇到以下错误!我受够了,因为此错误尚未在Google搜索中出现。这是我在CMD控制台上获得的错误日志npmERR!Unexpectedendofinputat1:379680npmERR!.1","osenv":"~0.1.3","path-isinside":"~1.0.1","read":"~1.0.7","read-npmERR!^npmERR!Acompletelogofthisrunc

c++ - int 参数为 : conditional expressions ignored? 的意外模板行为

以下代码未按预期工作(或至少如我所料)。我尝试的所有g++版本都在模板递归限制下失败。输出似乎表明条件语句被忽略,并且无论P的值如何都使用最后的elseblock。templateinlineREALconst_pow(REALvalue);templateinlineREALconst_pow(REALvalue){return1.0;}templateinlineREALconst_pow(REALvalue){returnvalue;}templateinlineREALconst_pow(REALvalue){returnvalue*value;}templateinlineR

c++ - std::ifstream 中的意外异常

试验I/O我得到一个不应该抛出异常的异常:#include#includeintmain(){std::ifstreamf("/tmp");std::cout>std::ws)std::cout但是输出是:ExceptionFlags:0terminatecalledafterthrowinganinstanceof'std::ios_base::failure'what():basic_filebuf::underflowerrorreadingthefileAbortedg++(Ubuntu/Linaro4.7.2-2ubuntu1)4.7.2编辑测试应该毫无异常(exceptio