草庐IT

getLine1

全部标签

c++ - getline 无法正常工作?可能是什么原因?

这个问题在这里已经有了答案:关闭11年前.PossibleDuplicate:getlinenotaskingforinput?在我的程序中发生了一些独特的事情。以下是一些命令集:cout>age;cout当我尝试将这段代码与整个代码一起运行时。输出程序的工作方式如下:输出:Enterthefullnameofstudent:Age:20Father'sName:PermanentAddress:xyz如果你注意到了,程序没有问我全名,而是直接问我年龄。然后它也跳过了父亲的名字,问了永久地址。这可能是什么原因?因为代码太大,我很难贴出整个代码。 最佳答案

getline的使用详解

getline的头文件、getline函数与字符串所需要的头文件相同,需要在头文件#include中调用getline函数。getline的介绍getline是C++标准库函数;它有两种形式,一种是头文件中输入流成员函数;一种在头文件中普通函数;它遇到以下情况发生会导致生成的本字符串结束:(1)到文件结束,(2)遇到函数的定界符,(3)输入达到最大限度。getline的两种形式getline函数有两种不同的形式,这也就对应着字符串的结束方式。第一种以换行符'\n'结束字符串的读入。getline函数的原型是getline(std::cin,stringch)。代码样例#include#incl

c++ - 尝试在 getline 中使用 int

cout>";getline(cin,totalquestions);这一小段代码来self创建的类中的一个函数,我需要totalquestions是一个int以便它可以运行一个for循环并不断询问总数我问过的问题。questionq;for(inti=0;i这段代码在哪里发挥作用?有没有人有任何想法使这项工作? 最佳答案 使用cin>>totalquestions;也检查错误if(!(cin>>totalquestions)){//handleerror} 关于c++-尝试在getli

c++ - clang 3.3/Xcode & libc++:std::getline 在调用 ifstream::clear() 后不读取数据

以下程序演示了libc++和libstdc++(使用clang3.3)之间std::getline行为的不一致。程序打开文件testfile,读取它直到eof,然后使用ifstream::clear清除错误位并尝试再次从同一文件句柄读取以查看是否有新数据附加到文件。#include#include#includeusingnamespacestd;intmain(){ifstream*file=newifstream("testfile");if(!file->is_open()){coutclear();//removeendoffileevilbitsstringline;//wo

c++ - C++中getline的缓冲区大小限制

我有一个简单的C++程序,它逐行读取文件。有些行包含超过20000个字符。下面的程序只能读取那些大行的4095个字符。我认为这是因为缓冲区大小限制。读取大行的解决方案是什么?//readingatextfile#include#include#includeusingnamespacestd;intmain(){stringline;ifstreammyfile("new.fasta");if(myfile.is_open()){while(getline(myfile,line)){cout 最佳答案 试试sed${n}p|wc在

c++ - 如何使此函数使用 getline 读取字符串并使其与 int 的行为相同?

templateTget(conststring&prompt){cout>ret;returnret;}我不知道如何通过重载来做到这一点;基本上,这适用于任何类型的数据,对吧……我尝试使用typeid(variable).name();并获得字符串变量的输出,并尝试在get函数中创建一个if。但是它没有用。 最佳答案 如您所知,不能仅通过返回值类型来重载函数。我注意到您的类型是默认可构造的,因此我将它们用作默认值为空的函数参数,因此可以通过此默认参数类型重载函数:https://ideone.com/oPSWLC#include#

c++ - 如何使用 std::in 和 getline() 在后台进程中检测从 bash 注入(inject)的输入

我有一个用Cpp编译的二进制文件,代码如下:std::stringinput;getline(std::cin,input);std::cout如果我执行此示例,并在终端中写入“Helloworld!”完美运行:Messagegiven:Helloworld!现在,我启动重定向标准输出的可执行文件:./basicsample>>output/test如果我尝试使用文件描述符注入(inject)输入:echo"Helloworld!">/proc/${PID}/fd/0消息出现在启动进程的终端中:[vgonisanz@foovarbash]$./basicsample>>output/t

c++ - 这是 getline() 的错误,还是我做错了什么。 getline() 的正确使用方法?

这可能不是一个错误,但我不知道出了什么问题。我的第一个条目在第二次迭代中对str1重复,并且从那时起也是如此。只有第一次迭代顺利。#include#includeusingnamespacestd;intmain(){cout>c;}return0;}输出是:Entertwowords.helloworldthisismrstr:helloworldstr1:thisismrContinue?yhelloworldstr:str1:helloworldContinue?n 最佳答案 添加cin.ignore(std::numeric

c++ - 在程序中一起使用 getline 和 strtok 的问题

在下面的程序中,我打算将文件中的每一行读入一个字符串,分解字符串并显示单个单词。我面临的问题是,程序现在只输出文件中的第一行。我不明白为什么会这样?#include#include#include#includeusingnamespacestd;intmain(){ifstreamInputFile("hello.txt");stringstore;char*token;while(getline(InputFile,store)){cout 最佳答案 我是C++的新手,但我认为另一种方法可能是:while(getline(Inp

涉及 getline() 和循环的 C++ 问题

我正在做一项学校作业,现在正在用头撞墙试图弄清楚为什么我的程序没有按照我希望的那样运行!intmain(){stringinput;charchoice;boolgetChoice(char);stringgetInput();CharConverternewInput;do{cout>choice;}while(getChoice(choice)==true);return0;}这个程序在第一轮运行良好,但当getChoice()==true时我遇到了问题,并且dowhileblock被第二次循环。在第二个循环中,程序要求我再次输入一个句子,但随后直接跳转到“Wouldyoulike