草庐IT

GNU-getline

全部标签

c++ - GNU 的 nana 库死了吗?是否有后继者在使用?

查看http://savannah.gnu.org/projects/nana/似乎上次的工作是四年前在Nana上完成的,nana的官方gnu.org主页是一个占位符。鉴于不活跃的项目往往会遭受比特腐烂:项目结束了吗?有继任者吗?人们是否有其他更好的C/C++断言/日志记录库? 最佳答案 如果您正在寻找日志记录库,请使用Log4Cxx:http://logging.apache.org/log4cxx/如果您正在寻找断言检查,请使用单元测试框架,例如UnitTest++:http://unittest-cpp.sourceforge

c++ - Python 等效于 C++ getline()

在C++中,我们可以通过在getline()函数中给出我们自己选择的定界字符来输入多行。但是我不能在Python中做同样的事情!!它只有raw_input()和sys.stdin.readline()方法可以读取直到我按下回车键。有什么方法可以自定义它以便我可以指定我自己的分隔符吗? 最佳答案 是否仍要按Enter键创建多行?你如何结束输入?或者你想在一行中指定多行?如果是前者,尝试循环raw_input()直到写入告诉它停止的内容:lines=[]whileTrue:user_input=raw_input()ifuser_inp

c++ - G++ 4.6 -std=gnu++0x : Static Local Variable Constructor Call Timing and Thread Safety

voida(){...}voidb(){...}structX{X(){b();}};voidf(){a();staticXx;...}假设在进入main之后,f被多个线程(可能竞争)多次调用。(当然,唯一对a和b的调用是上面看到的那些)以上代码在-std=gnu++0x模式下用gccg++4.6编译时:Q1。是否保证至少调用一次a()并在调用b()之前返回?也就是说,在第一次调用f()时,x的构造函数是否会同时调用一个自动持续时间局部变量(非静态)(而不是在全局静态初始化时间)?Q2。是否保证b()只会被调用一次?即使两个线程第一次同时在不同的核上执行f?如果是,GCC生成的代码通过

c++ - 从 getline() 返回的字符串是否以 null 结尾?

在谷歌搜索了一段时间后我不太确定的一件事是getline()的返回字符串。希望在这里得到证实。std::getline这个全局版本返回一个std::string所以它不一定是空终止的。一些编译器可能会附加“\0”,而其他编译器则不会。std::istream::getline此函数返回一个c风格的字符串,因此可以保证该字符串以null结尾。是这样吗? 最佳答案 空终止是一个仅适用于C字符串的概念;它不适用于std::string的对象-他们让您通过调用size()找到尺码,并且不需要空终止。但是,从std::string返回的字符串

c++ - 使用 dlopen 加载 GNU ld 脚本

我有一个C++14代码,它应该使用dlopen加载任意共享对象文件。不幸的是,在某些系统上(例如我的archlinux,据报道也适用于ubuntu和gentoo上的某些.so),这些so文件可以是“GNUld脚本”而不是实际的二进制文件。作为引用,这里是我的/usr/lib/libm.so的内容:/*GNUldscript*/OUTPUT_FORMAT(elf64-x86-64)GROUP(/usr/lib/libm.so.6AS_NEEDED(/usr/lib/libmvec.so.1))我在ghc中找到了几个处理这个问题的代码片段或ruby.我想避免诉诸基于解析dlerror文本和

c++ - std::cin 上的 std::getline

是否有充分的理由:std::stringinput;std::getline(std::cin,input);getline调用不会等待用户输入?cin的状态是否以某种方式搞砸了? 最佳答案 很可能您在读取一些其他数据后尝试读取字符串,例如int。考虑输入:11isaprime如果你使用下面的代码:std::cin>>number;std::getline(std::cin,input)getline只会读取11之后的换行符,因此您会觉得它没有等待用户输入。解决这个问题的方法是使用虚拟getline来消耗数字后的新行。

C++ getline() 不需要命名空间声明

为什么getline()来自本地范围内的headerstring并且可以使用:#include#includeintmain(){std::stringstr;getline(std::cin,str);std::cout这适用于gcc。但为什么?它在headerstring中定义,这应该要求我使用std::getline()而不是getline()。 最佳答案 您正在体验参数相关查找(ADL,也称为Koenig查找)。由于一个或多个参数是std命名空间中定义的类型,因此它会在std命名空间中搜索该函数,而不是搜索其他任何地方。我给

c++ - 差异 : cin. getline() 和 getline(cin, st)

哪个更好,更受欢迎?我真的发现阅读API令人困惑。 最佳答案 成员(member)版读入char*,免费版读入std::string。所以更喜欢免费版!像这样使用它:std::istream&ins=/*...*/;std::stringline;while(std::getline(ins,line)){//processline} 关于c++-差异:cin.getline()和getline(cin,st),我们在StackOverflow上找到一个类似的问题:

c++ - 在 C++ 中将 getline() 与文件输入一起使用

我正在尝试用C++完成一个简单的初学者任务。我有一个包含该行的文本文件“约翰·史密斯31”。而已。我想使用ifstream变量读取此数据。但我想将名称“JohnSmith”读入一个字符串变量,然后将数字“31”读入一个单独的int变量。我试过使用getline函数,如下:ifstreaminFile;stringname;intage;inFile.open("file.txt");getline(inFile,name);inFile>>age;cout问题在于它会输出整行“JohnSmith31”。有没有一种方法可以让getline函数在获得名称后停止,然后“重新启动”以检索号码?

c++ - 我怎样才能用 GNU g++ 只编译标准 C++?

GNUg++编译器中有一些扩展,例如VLA(可变长度数组),即使这些功能不是C++标准。因此,如果我需要仅使用C++标准构造来编译程序并避免那些额外的扩展,我可以使用GNUg++来完成吗?像g++test.cpp-std=onlyStandards这样的东西? 最佳答案 传递-pedantic-errors标志。请务必使用-std=设置标准,例如-std=c++14。这也适用于clang。 关于c++-我怎样才能用GNUg++只编译标准C++?,我们在StackOverflow上找到一个