7得票1回答
如何为自定义的istream/streambuf实现seekg()函数?

我在十年前是一名C++专家,但过去十年我一直在编写Java程序。我刚刚开始一个使用小型第三方XML解析器的C++项目。XML解析器接受STL istream。我的XML数据来自Windows COM IStream。我想我应该做正确的事情,创建一个适配器,将IStream数据取出并通过istr...

15得票3回答
非阻塞的std::getline,如果没有输入就退出

目前我有一个从标准输入读取数据的程序,有时候程序需要在没有输入时继续运行,通常这是一个测试脚本,没有所谓的“回车”。 program -v1 -v2 -v3 <input >output v1 - v3 分别是命令行参数。 基本上,如果不给出“input”,该程序将输出命令行...

147得票5回答
为什么std::getline()在格式化提取后跳过输入?

我有以下一段代码,用于提示用户输入他们猫的年龄和名字: #include <iostream> #include <string> int main() { int age; std::string name; std::cin >&...

8得票4回答
将std::istream&&作为参数传递是否合理?

我遇到了一些这样的代码: SomeObject parse (std::istream && input) {.... input参数是一个右值引用,通常意味着函数旨在接收参数的所有权。但这里发生的情况有点不同。 parse函数将完全消耗输入流,并且要求使用右值引用,因...

7得票3回答
寻找cin和ifstream的流结束位置?

我正在运用一本C++教科书作为C++编程的复习。其中一个练习问题(不想过多解释)要求我定义一个函数,该函数可以将ifstream或cin(例如,istream)作为参数传递。然后,我必须读取流。问题是,我无法找到一种方法使这个函数使用cin和ifstream有效地查找流的末尾。换句话说, w...

23得票5回答
istream::getline 返回类型

istream::getline方法返回什么?我在问这个问题是因为我看到要循环遍历一个文件,应该这样做:while ( file.getline( char*, int ) ) { // handle input } 返回的是什么?

26得票2回答
为什么istream对象可以用作bool表达式?

有人知道为什么istream对象可以用作布尔表达式吗?例如: ifstream input("tmp"); int iValue; while (input >> iValue) //do something; 在这里,input >> iValue返回一...

13得票3回答
在std::istream中跳过行

我正在使用std::getline()从一个继承自std::istream的类中读取行,如何向前移动几行? 我只需要读取并丢弃它们吗?

10得票1回答
如何使用IOStream存储格式设置?

在为用户定义的类型创建格式化输出时,通常希望定义自定义格式化标志。例如,如果自定义字符串类可以选择在字符串周围添加引号,那将是很好的:String str("example"); std::cout << str << ' ' << squotes <...

11得票1回答
在C++中,当cin是一个bash heredoc时调用fork会导致重复的输入片段。

我正在用C++实现一个类似于shell的程序。它有一个循环,从cin读取数据,然后fork出子进程并等待其返回结果。 如果输入是交互式的或者从另一个程序进行了管道传输,那么这个程序可以正常运行。但是,当输入是一个bash heredoc时,程序会重新读取部分输入(有时无限期地重复读取)。 ...