鱼C论坛

 找回密码
 立即注册
查看: 419|回复: 3

[已解决]MFC中读取TXT文件坐标数据的问题

[复制链接]
发表于 2022-12-26 10:47:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
G00 X118.800         Y94.600         Z96.000  F1500
G00 X110.600         Y179.100         Z96.000
G01 X110.600         Y179.100         Z101.000
G01 X110.600         Y179.100         Z101.000
G01 X112.600         Y178.900         Z101.000
G01 X112.600         Y178.900         Z96.000
G00 X115.100         Y177.400         Z96.000
G01 X115.100         Y177.400         Z101.000
G01 X115.100         Y177.400         Z101.000
G01 X115.300         Y177.100         Z101.000
G01 X115.600         Y176.600         Z101.000
G01 X115.800         Y176.300         Z101.000
G01 X116.000         Y176.000         Z101.000
txt文件中的坐标数据如以上格式,如何能够过滤掉字母,只读取数字?
最佳答案
2022-12-28 15:52:53
本帖最后由 lvk 于 2022-12-28 15:54 编辑
dongmei 发表于 2022-12-28 14:49
可以放具体代码吗

  1. ifstream infile("xxx"); // xxx为你的文件路径
  2. string line;
  3. while (getline(infile, line))
  4. {
  5.     replace_if(line.begin(), line.end(), [](char c){ return isalpha(c); }, ' ');
  6.     istringstream in(line);
  7.     double num = 0;
  8.     while (in >> num)
  9.     {
  10.         /*此处读取到的num已是double型数据,这里我只是把他们打印出来,你可以在这里对其进行其他操作*/
  11.         cout << num << " ";
  12.     }
  13. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-12-26 14:47:10 | 显示全部楼层
本帖最后由 lvk 于 2022-12-26 15:38 编辑

使用getline读取一行,把字母用空格替换,然后把哪一行绑定到istringstream对象上,然后作为数字读取出来,以上放进循环里,直至读取完毕后退出循环
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-12-28 14:49:45 | 显示全部楼层
lvk 发表于 2022-12-26 14:47
使用getline读取一行,把字母用空格替换,然后把哪一行绑定到istringstream对象上,然后作为数字读取出来, ...

可以放具体代码吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-28 15:52:53 | 显示全部楼层    本楼为最佳答案   
本帖最后由 lvk 于 2022-12-28 15:54 编辑
dongmei 发表于 2022-12-28 14:49
可以放具体代码吗

  1. ifstream infile("xxx"); // xxx为你的文件路径
  2. string line;
  3. while (getline(infile, line))
  4. {
  5.     replace_if(line.begin(), line.end(), [](char c){ return isalpha(c); }, ' ');
  6.     istringstream in(line);
  7.     double num = 0;
  8.     while (in >> num)
  9.     {
  10.         /*此处读取到的num已是double型数据,这里我只是把他们打印出来,你可以在这里对其进行其他操作*/
  11.         cout << num << " ";
  12.     }
  13. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-30 20:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表