c++ - 使用流读取复杂结构

标签 c++ iostream

考虑我有以下“一对 float ”对象输入格式:(第一个变量,第二个变量)例如(1.0, 15.6).

阅读此类结构的最佳方式是什么?在 C 中,我会使用 scanf("(%f, %f)", &var1, &var2) - 非常好,不是吗?(​​是的,我知道它不提供类型安全等等)

但我只知道一种使用 C++ 流的方法:

float var1, var2;
char tmp;
cin >> tmp;
cin >> var1;
cin >> tmp;
cin >> var2;
cin >> tmp;

看起来很丑,就是一对花车而已。那么,有没有一种优雅的方法可以做到这一点?喜欢

cin >> "(" >> var1 >> ", " >> var2 >> ")";

最佳答案

可能 Boost.Spirit是你能找到的最接近的东西。这是 an example如何使用它来实现您想要的。

关于c++ - 使用流读取复杂结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6968169/

相关文章:

c++ - 在 C++ 中有类似于 typeof 的东西吗?

c++ - 在屏幕上显示 vector

c++ - 尝试使用 main 运行类时出错

java - FileBackedOutputStream 用例( Guava )

c++ - cstdio 流与 iostream 流?

c++ - 为什么 basic_stringbuf 和 basic_filebuf 移动构造函数具有实现定义的行为?

c++ - Caffe 在网络上打印整个保护文件 _.reset(new Net<float>(model_file, TEST))

c++ - 操作系统内核错误 : "ld: symbol(s) not found for architecture x86_64"

c++ - pthread_cond_wait 没有从 pthread_cond_broadcast 唤醒

c++ - OpenCV:C++ API 和 C API 在功能或速度上有区别吗?