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

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

15得票2回答
从istream输入到char*指针?

我正在阅读Bjarne Stroustrup 的《Programming Principles and Practice Using C++》(第二版)。在第660-661页中,作者定义了一个函数如下:istream& read_word(istream& is, char* ...

13得票6回答
如何将istringstream和ifstream分配给一个istream变量?

我希望拥有一个类型为istream的变量,它可以保存文件或字符串的内容。如果没有指定文件,那么这个istream类型的变量将被赋予一个字符串。std::ifstream file(this->_path) 和std::istringstream iss(stringSomething);...

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

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

12得票1回答
在读取循环中区分失败和文件结束

从 istream 读取的惯用循环是 while (thestream >> value) { // do something with value } 现在这个循环有一个问题:它无法区分循环是因为文件结束还是因为出现错误而终止。例如,看下面的测试程序: #includ...

12得票2回答
为什么没有std::from_string()函数?

为什么没有? template <typename T> T std::from_string(const std::string& s); 在C++标准中有没有类似于std::to_string()函数的东西?(我是说,既然有这个函数)。 PS-如果你对为什么没有...

11得票3回答
从流输入到枚举类型

如何从流中输入枚举类型? 我可以这样做unsigned int sex = 0; stream >> sex; student.m_bio.sex = static_cast<Sex>(sex); 否则呢?

11得票2回答
难道 istream::peek() 不应该总是返回你刚刚放回的内容吗?(涉及 IT 技术并且是一个提问标题)

从C++规范来看,直觉上我认为istream::putback(c)应该总是安排输入缓冲区,以便下一次调用istream::peek()读取字符c。这不正确吗?我问这个问题是因为随附于Xcode 4.6的最新版本的libc++在某些情况下似乎没有强制执行这种行为——特别是当最后一个字符在EOF...

11得票2回答
`std::istream::operator>>()`可以接受类似于stdio中的%i格式说明符的整数基数前缀吗?

当使用scanf()及其变体时,格式说明符%i可以接受十六进制(前缀为"0x"),八进制(前缀为"0")或十进制(无前缀)的数据。因此,例如字符串"0x10"、"020"和"16"都会被转换为一个具有十进制值16的整数。 那么,使用std::istream::operator>>格式化输入是...

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

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