dongmei 发表于 2022-12-26 10:47:10

MFC中读取TXT文件坐标数据的问题

G00 X118.800         Y94.600         Z96.000F1500
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文件中的坐标数据如以上格式,如何能够过滤掉字母,只读取数字?

lvk 发表于 2022-12-26 14:47:10

本帖最后由 lvk 于 2022-12-26 15:38 编辑

使用getline读取一行,把字母用空格替换,然后把哪一行绑定到istringstream对象上,然后作为数字读取出来,以上放进循环里,直至读取完毕后退出循环

dongmei 发表于 2022-12-28 14:49:45

lvk 发表于 2022-12-26 14:47
使用getline读取一行,把字母用空格替换,然后把哪一行绑定到istringstream对象上,然后作为数字读取出来, ...

可以放具体代码吗

lvk 发表于 2022-12-28 15:52:53

本帖最后由 lvk 于 2022-12-28 15:54 编辑

dongmei 发表于 2022-12-28 14:49
可以放具体代码吗

ifstream infile("xxx"); // xxx为你的文件路径
string line;
while (getline(infile, line))
{
    replace_if(line.begin(), line.end(), [](char c){ return isalpha(c); }, ' ');
    istringstream in(line);
    double num = 0;
    while (in >> num)
    {
      /*此处读取到的num已是double型数据,这里我只是把他们打印出来,你可以在这里对其进行其他操作*/
      cout << num << " ";
    }
}
页: [1]
查看完整版本: MFC中读取TXT文件坐标数据的问题