C++ 使用istream_迭代器从键盘读入结构向量?

C++ 使用istream_迭代器从键盘读入结构向量?,c++,vector,iostream,C++,Vector,Iostream,是否可以使用istream_迭代器通过读取人类的标准输入来插入向量?结构中包含多个数据类型 这样做有意义吗?或者单独提示每个数据段是更好的方法吗?我之所以问这个问题,是因为我被要求这样做,但我认为这是不可能的/实际的。任何东西都可以被istream\u迭代器读取,如果存在“operator>>”重载,并且它是可复制和可分配的 虽然这是可能的,但我认为这不是一种好的读取方式,因为用户必须手动键入EOF序列才能使迭代器到达终点 为了避免使用EOF,您可以让用户输入一些记录,但大多数人在输入之前不太可

是否可以使用
istream_迭代器
通过读取人类的标准输入来插入向量?结构中包含多个数据类型


这样做有意义吗?或者单独提示每个数据段是更好的方法吗?我之所以问这个问题,是因为我被要求这样做,但我认为这是不可能的/实际的。

任何东西都可以被istream\u迭代器读取,如果存在“operator>>”重载,并且它是可复制和可分配的

虽然这是可能的,但我认为这不是一种好的读取方式,因为用户必须手动键入EOF序列才能使迭代器到达终点

为了避免使用EOF,您可以让用户输入一些记录,但大多数人在输入之前不太可能知道记录的数量

更好的选择可能是逐行读取并使用stringstream来获取数据。通过这种方式,您可以在将某些预定义模式(如空行)作为数据发送到stringstream之前将其识别为输入的结尾