相当于fscanf的C++

C++ equivalent for fscanf

本文关键字:C++ fscanf 相当于      更新时间:2023-10-16

我想把这些代码从c翻译成c++

 fscanf(file, "%f %f %fn", &v.x, &v.y, &v.z );

int matches = fscanf(file, "%d/%d/%d %d/%d/%d %d/%d/%dn", &vIndex[0], &uvIndex[0], &nIndex[0], &vIndex[1], &uvIndex[1], &nIndex[1], &vIndex[2], &uvIndex[2], &nIndex[2] );

我在网上找不到任何关于那件事的文件。我想使用ifstream和stringstream,但我在网上读到的所有内容都很混乱。

更糟糕的是,我的ISP遇到了麻烦,他们意外屏蔽了一些网站(cplusplus.com…)==!!所以我现在找不到任何有用的

有人能帮我破解那些密码吗。非常感谢这个

文件示例

v 1.000000-1.000000-1.0000005 v 1.000000-1.000000 1.000000 6 v-1.000000-1.0000001.000000 7 v-1.000000-1.00000-1.0000008 v 1.000000 1.0000000-1.0000009 v 0.999999 1.000000 1.0000010 10 v-1.0000001.00000001.000000 1.00000011 v-1.0000001.00 1.000000-1.00000012 vt 0.748573 0.750412 13 vt 0.749279 0.501284 14 vt 0.999110 0.501077 15 vt 0.999455 0.750380 16 vt 0.250471 0.50070217 vt 0.249682 0.749677 18 vt 0.001085 0.750380 19 vt 0.0015170.499994 20 vt 0.499422 0.500239 21 vt 0.500149 0.750166 22 vt 0.748355 0.998230 23 vt 0.500193 0.998728 24 vt 0.498993 0.250415 25 vt 0.748953 0.250920 26 vn 0.000000 0.000000-1.000000 27 vn-1.000000-0.000000-0.000000 28越盾-0.000000-0.000000 1.000000 29越盾-0.000001 0.000000 1.000000 30越盾1.000000-0.000000 0.000000 31越盾1.00000 0.000000 0.000001 32越盾0.000000 1.00000-0.000000 33越盾-0.000000-1.000000 0.000000 34 usemtl Material_ray.png 35 s off 36 f 5/1/1 1/2/1 4/3/1 37 f 5/1/1 4/4/1 38 f 3/5/2 7/6/2 8/7/2 39 f 3/2/28/7/2 4/8/2 40 f 2/9/3 6/10/3/5/3 41 f 6/10/4 7/6/4 3/5/4 42 f 1/2/55/1/5 2/9/5 43 f 5/1/6 6/10/6 2/9/6 44 f 5/1/7 8/11/7 6/10/7 45 f8/11/7 7/12/7 6/10/7 46 f 1/2/8 2/9/8 3/13/8 47 f 1/2/8 3/13/8 4/14/8

您想要使用std::ifstream,类似于以下内容:

string file_name;
// ...
ifstream ifs;
ifs.open(file_name);
ifs >> v.x;
ifs >> v.y;
ifs >> v.z;