草庐IT

-std=gnu99

全部标签

c++ - 为什么 std::ofstream 添加额外的#13(换行符)字符?

我正在使用一个基本的std::ofstream对象,创建如下:output_stream=std::ofstream(output_file.c_str());这会创建一个文件,其中包含一些信息。让我展示这样一条消息的示例:(Watch窗口摘录)full_Message"Errorwhileprocessingmessage:\r\n\tForecastRequest:"这一切都可以,但是在启动以下命令后,出现了问题:output_stream为了找出问题所在,让我们看一下文件的十六进制转储:(这是文件的十六进制显示,如Notepad++中所示。为清楚起见,我截取了屏幕截图。)如您所见

c++ - 为什么 std::remove for file 总是返回 -1?

我正在尝试删除一个文件(如果存在)。所以首先我测试文件是否存在,如果存在我使用std::remove删除它。.test.json中包含一些json相关的txt。我还有#include包括在内。std::stringfile_to_remove="test.json";std::ifstreamf(file_to_remove.c_str());if(f.good()){intval=std::remove(file_to_remove.c_str());std::cout我原以为retval是0但我得到-1我当前的输出是:Removingfile:test.json:retval:-1

c++ - 相当于 gnu 中 windows stdint.h 的 u_int16_t?

到目前为止,我假设u_int16_t是一个名为stdint.h的MSVS头文件中某处的Windows类型。我正在使用GNUg++作为编译器(实际上是带有mingw的代码块),我想知道typedefunsignedshortuint_least16_t;(在mingw的stdint.h内)是否等效,或者我可以做些什么来包含它类型?这个问题实际上与编译googlesparsehash有关用于MSVS的项目文件,但我使用的是代码块。这是它给我的错误(顺便说一句,这个错误重复了很多次)。c:\programfiles\codeblocks\mingw\bin\..\lib\gcc\mingw3

c++ - qt linux "QMAKE_CXXFLAGS += -std=c++11"相当于 windows?

我是新手,如果这真的很愚蠢,请原谅我。最近我在ubuntu中使用qt创建了一个项目,我使用“QMAKE_CXXFLAGS+=-std=c++11”进行静态链接,一切顺利所以我想为什么不在Windows上重新编译它,我做到了。这是node.h#ifndefNODE_H#defineNODE_H#include#include#include"qcustomplot.h"usingnamespacestd;classnode{public:doublep[6];stringtable[3000][9];doublesplitPoints[8];doubleginiA[8];//arrayo

c++ - std::stringstream 类需要有 dll 接口(interface)

我在dll中有一个C++类。在那个类中,我想将来自Curl回调的数据存储到一个成员变量中。我打算像这样使用字符串流:voidMyClass::CurlCallback(void*pvData,size_ttSize){constchar*data=static_cast(pvData);m_myStringStream但是当像这样在我的类中声明字符串流时:private:std::stringstreamm_myStringStream;我收到以下错误:Error1errorC2220:warningtreatedaserror-no'object'filegeneratedWarni

c++ - Clion 的 "Call to std::pair is ambiguous"但可以编译代码

我有一个函数可以在这种状态下编译,但给出“配对调用不明确”,但仅在ClionIDE中,编译没有问题,如果我添加任何随机的东西,警告就会消失,即使它最终导致编译器错误。std::pair>Config::foo(conststd::string&sec,conststd::string&key)const{returnstd::pair>(hasSection(sec)?(hasKey(sec,key)?Status::Success:Status::MissingKey):Status::MissingSec,hasKey(sec,key)?config_map.find(sec)->

c++ - MSVC (std::codecvt) 上的双字节编码:无法识别前导字节

我想使用std::codecvt::in()将以双字节代码页编码的字符串转换为UTF-16字符串关于Microsoft标准库实现(MSVC11)。例如,考虑以下程序:#include#includeintmain(){//KATAKANALETTERA(U+30A2)inShift-JIS(Codepage932)//http://msdn.microsoft.com/en-us/goglobal/cc305152charconstcs[]="\x83\x41";std::localeloc=std::locale("Japanese");//Output:"Japanese_Japa

windows - 如何在c99模式下编译?

我在windows平台上,有什么方法可以在c99模式下在命令行中编译程序,而不必在每个程序中键入-std=c99陈述?我当前的gcc版本是4.4.1。 最佳答案 gcc不提供通过例如环境变量指定命令行参数的方法。如果您想要-std=c99的效果,那么在某种程度上您将不得不使用该参数调用gcc命令。如果您从类Unix命令shell调用gcc,例如与Cygwin一起使用的命令shell,可能已经有一个c99命令。POSIX需要这样的命令(它将是gcc命令的包装器)。我目前没有安装Cygwin,所以我无法检查它。如果不存在,您可以定义一个

windows - Windows 下的 GNU Make : Check for cygwin in PATH

我一直在Windows环境中整理一个makefile供我的团队使用。我决定使用MinGW的makeforWindows版本。我将该可执行文件及其依赖项放入一个应该位于每个人的PATH变量中的存储库位置。为简单起见,可执行文件已重命名为“make.exe”。然后我意识到,当某人的路径中有cygwin的bin文件夹时,我必须考虑到这种情况。echo、rmdir和mkdir等命令将从cygwin的bin文件夹中调用echo.exe、rmdir.exe和mkdir.exe。这意味着我需要适本地捕捉这种情况并为每个命令使用不同的标志。我在这里看到三种情况:Cygwin的bin路径位于存储库中ma

c++ - 遍历 std::vector 以从 std::string 数组中查找匹配项,更简单的方法?

我循环遍历std::vector和std::string数组以从vector中找到匹配项。例子:#include#include#includeintmain(){std::coutmyVector;myVector.push_back("Word");myVector.push_back("Word2");myVector.push_back("Word4");myVector.push_back("Word6");myVector.push_back("Word7");std::stringmyStringArr[]={"Word","Word1","Word2","Word3",