避免运算符>>在空格处中断输入
Avoid operator>> to break input at whitespaces
我正在重载operator>>
函数。它应该在输入中获取一个字符串,需要一些空格,在空格处分解字符串并执行与主题无关的其他操作。
我有这个代码:
std::istream& operator>>(std::istream &in, Foo &f) {
std::string str;
in >> str;
std::cout << "str = " << str << std::endl; // for testing
// ...
return in;
}
假设把这个字符串(一个复数(作为输入:
3 + 2i
std::cout
函数仅打印3
。我试图把旗帜放在std::noskipws
,但问题仍然存在。
有什么办法解决这个问题吗?
使用std::getline
函数读取完整的输入行:
std::getline(in, str);
相关文章:
- EASTL矢量<向量<int>>连续的
- 类成员和中断
- 捕获标准输出以压缩并使用 CTRL-C 中断会给出损坏的 zip 文件
- 我的代码运行良好,但在游戏循环中中断
- 使用带有MCP23017的 pigpio 进行中断读取
- 为什么我在 AVR 中的中断无法正常工作?
- 使用 UDP 中断 while()-循环
- C++:在不中断共享的情况下通过引用传递共享 PTR?
- 如何在 CompleteAsyncIO 中访问 IOMemoryBufferDescriptor,该描述符通过中断 EP
- 如何为伺服电机创建中断或返回值?
- 开关:无外壳中断
- 如何使用中断停止循环?
- 为什么当我输入一个被接受的数字时,我的 do-while 循环没有中断?
- 在 Ubuntu 中编译 SuiteSparse,在安装 CHOLMOD 时中断
- 在PROGMEM中添加更多数据会中断Arduino Mega 2560上的SPI传输
- 附加到 gdb 会中断并且不会继续该过程
- 使用 shared_ptr 在中断时结束多线程循环
- 为什么STM32不中断?
- 如何使用 SIGINT 在第二个线程中断 getchar
- 使用个人C++库编译代码时,与头文件一起使用时会中断