草庐IT

GNU-getline

全部标签

c++ - 我希望 cin 读取到 '\n' 但我不能使用 getline

我有一个以下格式的文本文件:infodata1data2infodata1data2data3data4...问题是:当使用getline()时,数据的数量(和长度)可能非常大并导致运行时问题。所以我无法将整行读入std::string。我尝试了以下方法:for(inti=0;i>info;while(cin.peek()!='\n'&&cin>>data){//dostuffwithdata}}然而cin.peek()并没有成功。信息在while循环中读入数据,程序把事情搞砸了。我该如何解决这个问题? 最佳答案 您可以尝试逐个字符

我需要帮助弄清楚如何将getline放入PresentStringPrompt中以摆脱重复的代码

该程序要求您输入三个朋友和他们的披萨切片的直径。然后,它计算披萨的面积,并看到谁的切片最大。我需要一些帮助,以尝试将getline放入我的字符串功能中,以摆脱代码中的重复。#include#include#include#includeusingnamespacestd;stringpresentStringPrompt(string);doublepresentDoublePrompt(string);doublecomputeAreaOfCircle(double);constdoublepi=3.14159;intmain(){stringfirst;stringsecond;strin

c++ - 使用 GNU make 创建多个预编译头文件

我使用gcc(以g++运行)和GNUmake。我用gcc预编译一个头文件precompiled.h,创建precompiled.h.gch;Makefile中的以下行执行此操作:#MYCCFLAGSisalistofcommand-lineparameters,e.g.-g-O2-DNDEBUGprecompiled.h.gch:precompiled.hg++$(MYCCFLAGS)-c$一切都很好,直到我不得不使用不同的命令行参数运行g++。这样的话,即使precompiled.h.gch存在,也无法使用,编译会慢很多。在gcc文档中我已经阅读了处理这种情况的方法,我必须创建一个名

c++ - 为什么 getline 的字符串版本是非成员函数?

getline函数有一个characterversion这是一个成员函数,也是一个globalversion这需要字符串。为什么他们不都是成员函数?当前的方式让它看起来好像没有字符串版本。 最佳答案 istream&istream::getline(char*s,streamsizen)是流接口(interface)的一部分。istream&getline(istream&is,string&str)是string库中的一个扩展方法(就像istream&operator>>(istream&,string&)).选择这种设计可能是为

C++ GNU 指定的结构初始化在 Eclipse 中无法识别

CDT解析器报告结构初始化的语法错误:typedefstructMyStruct{inta;floatb;};intmain(void){//GNUCextensionformatMyStructs={a:1,b:2};//C99standardformat//MyStructs={.a=1,.b=2};return0;}同时GCCliststhe:formasobsolete,它似乎没有被弃用或删除。在C99中我肯定会使用标准.=形式,但对于C++,:是我所知道的用于指定初始化的唯一选项。我已经尝试将我的工具链设置为MinGW和CrossGCC,但似乎都不起作用。如何让Eclipse

c++ - GNU C++ 中程序的奇怪行为,使用 float

看看这个程序:#include#includeusingnamespacestd;typedefpaircoords;doubledist(coordsa,coordsb){returnsqrt((a.first-b.first)*(a.first-b.first)+(a.second-b.second)*(a.second-b.second));}intmain(){coordsA=make_pair(1,0);coordsB=make_pair(0,1);coordsC=make_pair(-1,0);coordsD=make_pair(0,-1);cerr.precision(2

c++ - 为什么不使用 std::getline 就可以调用 getline?

我正在阅读C++入门书并尝试所有代码示例。我对这个很感兴趣:#include#includeusingstd::string;usingstd::cin;usingstd::cout;usingstd::endl;intmain(){stringline;while(getline(cin,line))cout在编译这段代码之前我猜编译会失败,因为我没有使用while(std::getline(cin,line))为什么getline在全局命名空间中?据我了解,只有在我使用namespacestd;或usingstd::getline;我在LinuxMintDebianEdition上

C++ 使用 getline() 打印 : pointer being freed was not allocated in XCode

我正在尝试使用std:getline()但出现了一个奇怪的运行时错误:malloc:*errorforobject0x10000a720:pointerbeingfreedwasnotallocated*setabreakpointinmalloc_error_breaktodebug这是产生此错误的代码://main.cpp#include#includeintmain(intargc,char*constargv[]){std::istringstreammy_str("demostringwithspaces");std::stringword;while(std::getlin

c++ - 我可以在 C++ 函数 getline 中使用 2 个或更多分隔符吗?

这个问题在这里已经有了答案:HowcanIreadandparseCSVfilesinC++?(39个答案)关闭3年前。我想知道如何在getline函数中使用2个或更多分隔符,这是我的问题:程序读取一个文本文件...每一行都将是这样的:NewYour,Paris,100CityA,CityB,200我正在使用getline(file,line),但我得到了整行,当我想获得CityA,然后是CityB,然后是数字;如果我使用','分隔符,我将不知道下一行是什么时候,所以我想找出一些解决方案..不过,我怎么能使用逗号和\n作为分隔符呢?顺便说一下,我正在操作字符串类型,而不是char,所以

c++ - gnu缩进的谷歌c风格设置?

我正在为Emacs(google-c-style.el)和Vim(google.vim)使用googlec缩进样式。但是因为我有一些现有的代码不是这种风格,我希望我能改变它。我发现有一个叫做GNUindent的工具可以自动做这样的事情,它在thispage上提供了一些常用的样式设置。,但是没有适用于Googlec的缩进样式。那么它也有等价物吗?(我尝试了Linux和Berkley风格,感觉它们对我来说绝不是令人满意的) 最佳答案 郑重声明,对于那些对Clang和LLVM感兴趣的人,还有一个替代解决方案。clang-format绝对可